mockcat-0.6.0.0: test/Spec.hs
import Test.Hspec (hspec, describe, it)
import Test.MockCat.MockSpec as Mock
import Test.MockCat.ConsSpec as Cons
import Test.MockCat.ParamSpec as Param
import Test.MockCat.AssociationListSpec as AssociationList
import Test.MockCat.ExampleSpec as Example
import Test.MockCat.TypeClassSpec as TypeClass
import Test.MockCat.TypeClassTHSpec as TypeClassTH
import Test.MockCat.PartialMockSpec as PartialMock
import Test.MockCat.PartialMockTHSpec as PartialMockTH
import Test.MockCat.ConcurrencySpec as Concurrency
import Test.QuickCheck (property)
import qualified Property.ConcurrentCountProp as ConcurrencyProp
import qualified Property.LazyEvalProp as LazyEvalProp
import qualified Property.ScriptProps as ScriptProps
import qualified Property.OrderProps as OrderProps
import qualified Property.AdditionalProps as AdditionalProps
import qualified Property.ReinforcementProps as ReinforcementProps
import qualified Property.ParamSpecNormalizeProp as ParamSpecNormalizeProp
import qualified Property.ParamSpecMergeProp as ParamSpecMergeProp
import qualified Property.ParamSpecRangeMergeRandomProp as ParamSpecRangeMergeRandomProp
main :: IO ()
main = hspec $ do
Cons.spec
Param.spec
Mock.spec
AssociationList.spec
Example.spec
TypeClass.spec
TypeClassTH.spec
PartialMock.spec
PartialMockTH.spec
Concurrency.spec
describe "Property Concurrency" $ do
it "total apply count is preserved across threads" $ property ConcurrencyProp.prop_concurrent_total_apply_count
describe "Property Lazy Evaluation" $ do
it "unforced stub action is not counted" $ property LazyEvalProp.prop_lazy_unforced_not_counted
it "forced stub action is counted" $ property LazyEvalProp.prop_lazy_forced_counted
describe "Property Script Generator" $ do
it "script count matches recorded applications" $ property ScriptProps.prop_script_count_matches
describe "Property Order / PartialOrder" $ do
it "in-order script succeeds" $ property OrderProps.prop_inorder_succeeds
it "adjacent swap fails order verification" $ property OrderProps.prop_adjacent_swap_fails
it "subset partial order succeeds" $ property OrderProps.prop_partial_order_subset_succeeds
it "reversed pair fails partial order" $ property OrderProps.prop_partial_order_reversed_pair_fails
describe "Property Additional (Predicate / Multi-case / Isolation / Unused / Duplicates)" $ do
it "predicate param counts match" $ property AdditionalProps.prop_predicate_param_match_counts
it "multi-case progression saturates" $ property AdditionalProps.prop_multicase_progression
it "runMockT isolation of counts" $ property AdditionalProps.prop_runMockT_isolation
it "neverApply (unused) passes" $ property AdditionalProps.prop_neverApply_unused
it "partial order with duplicates behaves" $ property AdditionalProps.prop_partial_order_duplicates
describe "Property Reinforcement (Negative predicate / Partial force / Interleave)" $ do
it "predicate negative not counted" $ property ReinforcementProps.prop_predicate_negative_not_counted
it "lazy partial force in concurrency counts only forced" $ property ReinforcementProps.prop_lazy_partial_force_concurrency
it "interleaved duplicate partial order semantics" $ property ReinforcementProps.prop_partial_order_interleaved_duplicates
ParamSpecNormalizeProp.spec
ParamSpecMergeProp.spec
ParamSpecRangeMergeRandomProp.spec