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));
        }
        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;
            }
        }