public void NullContractInvalid()
        {
            // Arrange
            var validatorFactory = new Mock<IValidatorEngine>();
            var mappingEngine = new Mock<IMappingEngine>();
            var repository = new Mock<IRepository>();
            var searchCache = new Mock<ISearchCache>();

            var service = new SourceSystemService(validatorFactory.Object, mappingEngine.Object, repository.Object, searchCache.Object);

            validatorFactory.Setup(x => x.IsValid(It.IsAny<object>(), It.IsAny<IList<IRule>>())).Returns(false);

            // Act
            service.Create(null);
        }
        public void NullContractInvalid()
        {
            // Arrange
            var validatorFactory = new Mock <IValidatorEngine>();
            var mappingEngine    = new Mock <IMappingEngine>();
            var repository       = new Mock <IRepository>();
            var searchCache      = new Mock <ISearchCache>();

            var service = new SourceSystemService(validatorFactory.Object, mappingEngine.Object, repository.Object, searchCache.Object);

            validatorFactory.Setup(x => x.IsValid(It.IsAny <object>(), It.IsAny <IList <IRule> >())).Returns(false);

            // Act
            service.Create(null);
        }
        public void ValidContractIsSaved()
        {
            // Arrange
            var validatorFactory = new Mock<IValidatorEngine>();
            var mappingEngine = new Mock<IMappingEngine>();
            var repository = new Mock<IRepository>();
            var searchCache = new Mock<ISearchCache>();

            var service = new SourceSystemService(validatorFactory.Object, mappingEngine.Object, repository.Object, searchCache.Object);

            var sourcesystem = new SourceSystem();
            var contract = new EnergyTrading.Mdm.Contracts.SourceSystem();

            validatorFactory.Setup(x => x.IsValid(It.IsAny<EnergyTrading.Mdm.Contracts.SourceSystem>(), It.IsAny<IList<IRule>>())).Returns(true);
            mappingEngine.Setup(x => x.Map<EnergyTrading.Mdm.Contracts.SourceSystem, SourceSystem>(contract)).Returns(sourcesystem);

            // Act
            var expected = service.Create(contract);

            // Assert
            Assert.AreSame(expected, sourcesystem, "SourceSystem differs");
            repository.Verify(x => x.Add(sourcesystem));
            repository.Verify(x => x.Flush());
        }
        public void ValidContractIsSaved()
        {
            // Arrange
            var validatorFactory = new Mock <IValidatorEngine>();
            var mappingEngine    = new Mock <IMappingEngine>();
            var repository       = new Mock <IRepository>();
            var searchCache      = new Mock <ISearchCache>();

            var service = new SourceSystemService(validatorFactory.Object, mappingEngine.Object, repository.Object, searchCache.Object);

            var sourcesystem = new SourceSystem();
            var contract     = new EnergyTrading.Mdm.Contracts.SourceSystem();

            validatorFactory.Setup(x => x.IsValid(It.IsAny <EnergyTrading.Mdm.Contracts.SourceSystem>(), It.IsAny <IList <IRule> >())).Returns(true);
            mappingEngine.Setup(x => x.Map <EnergyTrading.Mdm.Contracts.SourceSystem, SourceSystem>(contract)).Returns(sourcesystem);

            // Act
            var expected = service.Create(contract);

            // Assert
            Assert.AreSame(expected, sourcesystem, "SourceSystem differs");
            repository.Verify(x => x.Add(sourcesystem));
            repository.Verify(x => x.Flush());
        }