示例#1
0
        public void OwnerGetMaleAnimalCountMethodNegative()
        {
            GenderSeperatedViewModel expectedResult = new GenderSeperatedViewModel();

            expectedResult.Female = new List <FemaleName>();
            expectedResult.Male   = new List <MaleName>();
            OwnerController appObject = new OwnerController();

            GenderSeperatedViewModel actualResult = appObject.GetAnimals();

            Assert.AreNotEqual <int>(0, actualResult.Male.Count);
        }
示例#2
0
        public GenderSeperatedViewModel GetGenderSeparatedOwnerCatList(List <OwnerModel> ownerViewModel)
        {
            //Separate male and female owners
            var maleOwner = ownerViewModel.Where(x => x.Gender == Constants.Male).Select(p => new Male()
            {
                Pets = p.Pets
            }).ToList();
            var femaleOwner = ownerViewModel.Where(x => x.Gender == Constants.Female).Select(p => new Female()
            {
                Pets = p.Pets
            }).ToList();


            var itemsMale = from list in maleOwner
                            from item in list.Pets
                            select item;

            //Merge all male owner's cats
            List <MaleName> maleNameList = (from item in itemsMale
                                            select new MaleName
            {
                Name = item.AnimalName,
                Type = item.AnimalType
            }
                                            ).OrderBy(x => x.Name).ToList();

            var itemsFemale = from list in femaleOwner
                              from item in list.Pets
                              select item;

            //Merge all female owner's cats
            List <FemaleName> femaleNameList = (from item in itemsFemale
                                                select new FemaleName
            {
                Name = item.AnimalName,
                Type = item.AnimalType
            }
                                                ).OrderBy(x => x.Name).ToList();

            //Prepare and return result view model consisting both Male and Female view models
            GenderSeperatedViewModel genderSeperatedVM = new GenderSeperatedViewModel {
                Male = maleNameList, Female = femaleNameList
            };

            return(genderSeperatedVM);
        }
示例#3
0
        public void CheckForCatUnderFemaleMethodBehavioural() //Check whether animal is cat or not under female owner
        {
            GenderSeperatedViewModel expectedResult = new GenderSeperatedViewModel();

            expectedResult.Female = new List <FemaleName>();
            expectedResult.Male   = new List <MaleName>();
            OwnerController appObject = new OwnerController();

            GenderSeperatedViewModel actualResult = appObject.GetAnimals();

            if (actualResult.Female.Count > 0)
            {
                Assert.AreEqual <string>(Constants.PetType, actualResult.Female[0].Type.ToString());
            }
            else
            {
                Assert.AreEqual <string>(Constants.PetType, Constants.PetType);
            }
        }
        public GenderSeperatedViewModel GetAnimals()
        {
            GenderSeperatedViewModel animalViewModel = new GenderSeperatedViewModel();

            try
            {
                _ownerService = new OwnerService();
                _business     = new Business();

                var list = _ownerService.GetAllOwnerList();                                 // Call service that pulls out all owner data along with their animals and prepare a owner list
                List <OwnerModel> ownerViewModel = GetAllOwnerAnimalsViewModel(list);       //Convert result into owner model
                animalViewModel = _business.GetGenderSeparatedOwnerCatList(ownerViewModel); //Get result view model consisting both models 1. Male, 2. Female
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(animalViewModel);
        }