Example #1
0
        public void TestThatValidateThrowsDeliveryEngineMappingExceptionIfExceptionOccursInMapper()
        {
            var fixture = new Fixture();

            fixture.Customize <Type>(e => e.FromFactory(() => typeof(object)));
            fixture.Customize <ITable>(e => e.FromFactory(() => MockRepository.GenerateMock <ITable>()));
            fixture.Customize <ICommand>(e => e.FromFactory(() => MockRepository.GenerateMock <ICommand>()));

            fixture.Customize <IMap>(e => e.FromFactory(() =>
            {
                var mapMock = MockRepository.GenerateMock <IMap>();
                mapMock.Expect(m => m.MapValue <string, string>(Arg <string> .Is.NotNull))
                .Throw(fixture.CreateAnonymous <Exception>())
                .Repeat.Any();
                return(mapMock);
            }));
            fixture.Customize <IField>(e => e.FromFactory(() =>
            {
                var fieldMock = MockRepository.GenerateMock <IField>();
                fieldMock.Expect(m => m.NameTarget)
                .Return(fixture.CreateAnonymous <string>())
                .Repeat.Any();
                fieldMock.Expect(m => m.Table)
                .Return(fixture.CreateAnonymous <ITable>())
                .Repeat.Any();
                fieldMock.Expect(m => m.DatatypeOfSource)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.DatatypeOfTarget)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.Map)
                .Return(fixture.CreateAnonymous <IMap>())
                .Repeat.Any();
                return(fieldMock);
            }));
            fixture.Customize <IDataObjectBase>(e => e.FromFactory(() =>
            {
                var dataObjectMock = MockRepository.GenerateMock <IDataObjectBase>();
                dataObjectMock.Expect(m => m.Field)
                .Return(fixture.CreateAnonymous <IField>())
                .Repeat.Any();
                dataObjectMock.Expect(m => m.GetSourceValue <string>())
                .Return(fixture.CreateAnonymous <string>())
                .Repeat.Any();
                return(dataObjectMock);
            }));
            fixture.Customize <IEnumerable <IDataObjectBase> >(e => e.FromFactory(() => fixture.CreateMany <IDataObjectBase>(10).ToList()));

            var mappingDataValidator = new MappingDataValidator();

            Assert.That(mappingDataValidator, Is.Not.Null);

            var targetTableData = new Dictionary <ITable, IEnumerable <IEnumerable <IDataObjectBase> > >
            {
                { fixture.CreateAnonymous <ITable>(), fixture.CreateMany <IEnumerable <IDataObjectBase> >(5).ToList() }
            };

            Assert.Throws <DeliveryEngineMappingException>(() => mappingDataValidator.Validate(fixture.CreateAnonymous <ITable>(), targetTableData, true, fixture.CreateAnonymous <ICommand>()));
        }
Example #2
0
        public void TestThatValidateValidatesMappersOnEachDataObject()
        {
            var fixture = new Fixture();

            fixture.Customize <Type>(e => e.FromFactory(() => typeof(object)));
            fixture.Customize <ITable>(e => e.FromFactory(() => MockRepository.GenerateMock <ITable>()));
            fixture.Customize <ICommand>(e => e.FromFactory(() => MockRepository.GenerateMock <ICommand>()));

            fixture.Customize <IMap>(e => e.FromFactory(() =>
            {
                var mapMock = MockRepository.GenerateMock <IMap>();
                mapMock.Expect(m => m.MapValue <string, string>(Arg <string> .Is.NotNull))
                .Return(string.Empty)
                .Repeat.Any();
                return(mapMock);
            }));
            fixture.Customize <IField>(e => e.FromFactory(() =>
            {
                var fieldMock = MockRepository.GenerateMock <IField>();
                fieldMock.Expect(m => m.DatatypeOfSource)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.DatatypeOfTarget)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.Map)
                .Return(fixture.CreateAnonymous <IMap>())
                .Repeat.Any();
                return(fieldMock);
            }));
            fixture.Customize <IDataObjectBase>(e => e.FromFactory(() =>
            {
                var dataObjectMock = MockRepository.GenerateMock <IDataObjectBase>();
                dataObjectMock.Expect(m => m.Field)
                .Return(fixture.CreateAnonymous <IField>())
                .Repeat.Any();
                dataObjectMock.Expect(m => m.GetSourceValue <string>())
                .Return(fixture.CreateAnonymous <string>())
                .Repeat.Any();
                return(dataObjectMock);
            }));
            fixture.Customize <IEnumerable <IDataObjectBase> >(e => e.FromFactory(() => fixture.CreateMany <IDataObjectBase>(10).ToList()));

            var mappingDataValidator = new MappingDataValidator();

            Assert.That(mappingDataValidator, Is.Not.Null);

            var targetTableData = new Dictionary <ITable, IEnumerable <IEnumerable <IDataObjectBase> > >
            {
                { fixture.CreateAnonymous <ITable>(), fixture.CreateMany <IEnumerable <IDataObjectBase> >(5).ToList() }
            };

            mappingDataValidator.Validate(fixture.CreateAnonymous <ITable>(), targetTableData, true, fixture.CreateAnonymous <ICommand>());

            foreach (var dataObject in from dataTable in targetTableData.Keys from dataRow in targetTableData[dataTable] from dataObject in dataRow.Where(m => m.Field != null && m.Field.Map != null) select dataObject)
            {
                dataObject.Field.Map.AssertWasCalled(m => m.MapValue <string, string>(Arg <string> .Is.NotNull));
            }
        }
Example #3
0
        public void TestThatConstructorInitializeDataValidator()
        {
            var mappingDataValidator = new MappingDataValidator();

            Assert.That(mappingDataValidator, Is.Not.Null);
        }
Example #4
0
        public void TestThatValidateRaisesOnValidationForEachDataRow()
        {
            var fixture = new Fixture();

            fixture.Customize <Type>(e => e.FromFactory(() => typeof(object)));
            fixture.Customize <ITable>(e => e.FromFactory(() => MockRepository.GenerateMock <ITable>()));
            fixture.Customize <ICommand>(e => e.FromFactory(() => MockRepository.GenerateMock <ICommand>()));

            fixture.Customize <IMap>(e => e.FromFactory(() =>
            {
                var mapMock = MockRepository.GenerateMock <IMap>();
                mapMock.Expect(m => m.MapValue <string, string>(Arg <string> .Is.NotNull))
                .Return(string.Empty)
                .Repeat.Any();
                return(mapMock);
            }));
            fixture.Customize <IField>(e => e.FromFactory(() =>
            {
                var fieldMock = MockRepository.GenerateMock <IField>();
                fieldMock.Expect(m => m.DatatypeOfSource)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.DatatypeOfTarget)
                .Return(typeof(string))
                .Repeat.Any();
                fieldMock.Expect(m => m.Map)
                .Return(fixture.CreateAnonymous <IMap>())
                .Repeat.Any();
                return(fieldMock);
            }));
            fixture.Customize <IDataObjectBase>(e => e.FromFactory(() =>
            {
                var dataObjectMock = MockRepository.GenerateMock <IDataObjectBase>();
                dataObjectMock.Expect(m => m.Field)
                .Return(fixture.CreateAnonymous <IField>())
                .Repeat.Any();
                dataObjectMock.Expect(m => m.GetSourceValue <string>())
                .Return(fixture.CreateAnonymous <string>())
                .Repeat.Any();
                return(dataObjectMock);
            }));
            fixture.Customize <IEnumerable <IDataObjectBase> >(e => e.FromFactory(() => fixture.CreateMany <IDataObjectBase>(10).ToList()));

            var mappingDataValidator = new MappingDataValidator();

            Assert.That(mappingDataValidator, Is.Not.Null);

            var eventCalled = 0;

            mappingDataValidator.OnValidation += (s, e) =>
            {
                Assert.That(s, Is.Not.Null);
                Assert.That(e, Is.Not.Null);
                Assert.That(e.Data, Is.Not.Null);
                eventCalled++;
            };

            Assert.That(eventCalled, Is.EqualTo(0));
            var targetTableData = new Dictionary <ITable, IEnumerable <IEnumerable <IDataObjectBase> > >
            {
                { fixture.CreateAnonymous <ITable>(), fixture.CreateMany <IEnumerable <IDataObjectBase> >(5).ToList() }
            };

            mappingDataValidator.Validate(fixture.CreateAnonymous <ITable>(), targetTableData, true, fixture.CreateAnonymous <ICommand>());
            Assert.That(eventCalled, Is.EqualTo(targetTableData.ElementAt(0).Value.Count()));
        }