summaryrefslogtreecommitdiff
path: root/Types/MetaData.hs
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2014-02-12 22:27:55 -0400
committerJoey Hess <joey@kitenet.net>2014-02-12 22:27:55 -0400
commita05ac13e92e842b1c9e8a7273025a2ed7e034e8b (patch)
treeac48f1e14cb807859c114ded0e1bea8dafc5d1bd /Types/MetaData.hs
parent4d205b0fb92cf6d6a60c59049d820a2e147a3442 (diff)
fix metadata log simplifier and additional quickcheck tests
Diffstat (limited to 'Types/MetaData.hs')
-rw-r--r--Types/MetaData.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/Types/MetaData.hs b/Types/MetaData.hs
index 53a9b69446..c701731c98 100644
--- a/Types/MetaData.hs
+++ b/Types/MetaData.hs
@@ -29,7 +29,7 @@ module Types.MetaData (
getAllMetaData,
serialize,
deserialize,
- prop_updateMetaData_sane,
+ prop_metadata_sane,
prop_metadata_serialize
) where
@@ -199,10 +199,13 @@ instance Arbitrary MetaValue where
instance Arbitrary MetaField where
arbitrary = MetaField <$> arbitrary `suchThat` legalField
-prop_updateMetaData_sane :: MetaData -> MetaField -> MetaValue -> Bool
-prop_updateMetaData_sane m f v = and
+prop_metadata_sane :: MetaData -> MetaField -> MetaValue -> Bool
+prop_metadata_sane m f v = and
[ S.member v $ getAllMetaData f m'
, not (isSet v) || S.member v (currentMetaDataValues f m')
+ , not (hasUniqueMetaData m m)
+ , hasUniqueMetaData newMetaData m'
+ , not (hasUniqueMetaData m' newMetaData)
]
where
m' = updateMetaData f v m