Exemple #1
0
        public void If_The_Owner_Data_Are_Valid_Must_Return_A_Valid_Person()
        {
            //
            // Arrange
            //
            var mapper = new DtoPersonToBusinessPerson(new DtoPetToBusinessPet());
            //
            // Act
            //
            var target = mapper.Map(new Person {
                Name = "some name", Gender = "Female", Age = 20, Pets = new Pet[]
                {
                    new Pet {
                        Name = "some pet1", Type = "Cat"
                    },
                    new Pet {
                        Name = "some pet2", Type = "Dog"
                    }
                }
            });

            //
            // Assert
            //
            Assert.Equal("some name", target.Name);
            Assert.Equal(20, target.Age);
            Assert.Equal(Gender.Female, target.Gender);

            Assert.Equal(1, target.Pets.Count(x => x.Type == PetType.Cat));
            Assert.Equal(1, target.Pets.Count(x => x.Type == PetType.Dog));
        }
Exemple #2
0
 public void If_DTO_Person_Is_Null_Must_Throw_Error()
 {
     //
     // Arrange, act and assert
     //
     Assert.Throws <ArgumentNullException>(() =>
     {
         var mapper = new DtoPersonToBusinessPerson(Mock.Of <IMapper <Pet, Domain.Models.Pet> >());
         var target = mapper.Map(null);
     });
 }
Exemple #3
0
        public void If_The_Owner_Gender_Is_Not_Supported_It_Must_Be_Returned_As_None()
        {
            //
            // Arrange
            //
            var mapper = new DtoPersonToBusinessPerson(Mock.Of <IMapper <Pet, Domain.Models.Pet> >());
            //
            // Act
            //
            var target = mapper.Map(new Person {
                Name = "some name", Gender = "blah"
            });

            //
            // Assert
            //
            Assert.Equal(Gender.None, target.Gender);
        }
Exemple #4
0
        public void If_There_Are_Null_Pets_Must_Throw_Error()
        {
            //
            // Arrange
            //
            var petMapper = new DtoPetToBusinessPet();
            var mapper    = new DtoPersonToBusinessPerson(petMapper);

            //
            // Act and assert
            //
            Assert.Throws <ArgumentNullException>(() =>
            {
                var target = mapper.Map(new Person
                {
                    Name   = "some name",
                    Gender = "Male",
                    Pets   = new List <Pet>(new Pet[] { null, null })
                });
            });
        }
Exemple #5
0
        public async Task If_There_Are_No_Owners_For_The_Requested_PetType_Must_Return_Success_With_Empty_People_List()
        {
            //
            // Arrange
            //
            var mockedClient = new Mock <IPeopleAreUsHttpClient>();

            mockedClient.Setup(x => x.GetPeopleAsync()).ReturnsAsync(OperationResult <List <Person> > .Success(new List <Person>
            {
                new Person
                {
                    Name = "some name1", Age = 18, Gender = "Male", Pets = new List <Pet>
                    {
                        new Pet {
                            Name = "some dog 1", Type = "Dog"
                        },
                        new Pet {
                            Name = "some dog 2", Type = "Dog"
                        },
                    }
                }
            }));
            var petMapper     = new DtoPetToBusinessPet();
            var personMapper  = new DtoPersonToBusinessPerson(petMapper);
            var specification = new PetTypeSpecification();
            var service       = new PeopleService(mockedClient.Object, specification, personMapper, Mock.Of <ILogger <PeopleService> >());
            //
            // Act
            //
            var operation = await service.GetPetOwnersAsync(new GetPetOwnersRequest(PetType.Cat));

            //
            // Assert
            //
            Assert.True(operation.Status);
            Assert.NotNull(operation.Data);
            Assert.Empty(operation.Data.People);
        }