private bool EvaluateUpdate_DateComparisonTest(DateTime sourceModified, DateTime serializedModified)
        {
            var logger = new Mock <ISerializedAsMasterEvaluatorLogger>();

            var evaluator = new SerializedAsMasterEvaluator(logger.Object, CreateTestFieldPredicate());

            var item          = new Mock <ISourceItem>();
            var sourceVersion = CreateTestVersion("en", 1, sourceModified, "REVISION");

            item.Setup(x => x.Versions).Returns(new[] { sourceVersion });
            item.Setup(x => x.Name).Returns("NAME");

            var serialized = new Mock <ISerializedItem>();

            serialized.Setup(x => x.Name).Returns("NAME");
            serialized.Setup(x => x.Deserialize(It.IsAny <bool>())).Returns(new Mock <ISourceItem>().Object);

            var version = CreateTestVersion("en", 1, serializedModified, "REVISION");

            serialized.Setup(x => x.Versions).Returns(new[] { version });

            evaluator.EvaluateUpdate(serialized.Object, item.Object);

            try
            {
                serialized.Verify(x => x.Deserialize(false));
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        public void EvaluateNewSerializedItem_LogsCreatedItem()
        {
            var logger    = new Mock <ISerializedAsMasterEvaluatorLogger>();
            var evaluator = new SerializedAsMasterEvaluator(logger.Object, CreateTestFieldPredicate());

            var newItem = new Mock <ISerializedItem>();

            newItem.Setup(x => x.Deserialize(It.IsAny <bool>())).Returns(new Mock <ISourceItem>().Object);

            evaluator.EvaluateNewSerializedItem(newItem.Object);

            logger.Verify(x => x.DeserializedNewItem(newItem.Object));
        }