コード例 #1
0
        public void WhenValidResponseFromAPI_ValidateResponseModel()
        {
            //Arrange
            PetsByGenderResponse moqResponse = new PetsByGenderResponse()
            {
                PetsByGenderList = new List <PetsByGender>
                {
                    new PetsByGender()
                    {
                        Gender   = "Male",
                        petsList = new List <string> {
                            "Max", "Tom"
                        }
                    },
                    new PetsByGender()
                    {
                        Gender   = "Female",
                        petsList = new List <string> {
                            "Maxi"
                        }
                    }
                }
            };

            PetsController controllerUnderTest = new PetsController(_moqPetsBusinesslogic.Object);

            _moqPetsBusinesslogic.Setup(m => m.RetreivePetsByType(It.IsAny <string>())).Returns(moqResponse);

            // Act
            var viewresult    = controllerUnderTest.Get("Cat") as ViewResult;
            var responseModel = (PetsByGenderResponse)viewresult.Model;

            // Assert
            Assert.Greater(responseModel.PetsByGenderList.Count, 0);
        }
コード例 #2
0
        public void WhenControllerCalled_verifyViewname()
        {
            //Arrange
            PetsByGenderResponse moqResponse = new PetsByGenderResponse()
            {
                PetsByGenderList = new List <PetsByGender>
                {
                    new PetsByGender()
                    {
                        Gender   = "Male",
                        petsList = new List <string> {
                            "Max", "Tom"
                        }
                    },
                    new PetsByGender()
                    {
                        Gender   = "Female",
                        petsList = new List <string> {
                            "Maxi"
                        }
                    }
                }
            };

            PetsController controllerUnderTest = new PetsController(_moqPetsBusinesslogic.Object);

            _moqPetsBusinesslogic.Setup(m => m.RetreivePetsByType(It.IsAny <string>())).Returns(moqResponse);

            // Act
            var viewresult = controllerUnderTest.Get("Cat") as ViewResult;

            // Assert
            Assert.AreEqual("pets", viewresult.ViewName);
        }
コード例 #3
0
        public void WhenUnhandledExceptionOccursInController_ResponseContainsErrors()
        {
            //Arrange
            PetsController controllerUnderTest = new PetsController(_moqPetsBusinesslogic.Object);

            _moqPetsBusinesslogic.Setup(m => m.RetreivePetsByType(It.IsAny <string>())).Throws(new Exception("object reference not set to instance"));

            // Act
            var viewresult    = controllerUnderTest.Get("Cat") as ViewResult;
            var responseModel = (PetsByGenderResponse)viewresult.Model;

            // Assert
            Assert.IsTrue(responseModel.Errors.Any(error => error.ErrorMessage == "object reference not set to instance"), "");
        }
コード例 #4
0
ファイル: ApiControllerTests.cs プロジェクト: akki-s/cats
        public async Task Api_Get_Grouped_Results_Returns_Data_GroupedByOwnerGender_Sorted_By_Name_With_Ok_Response()
        {
            var mockDataForGrouping = new List <GroupedByOwnerGenderViewModel>
            {
                new GroupedByOwnerGenderViewModel {
                    OwnerGender = "Female",
                    Cats        = new List <PetDetailsViewModel> {
                        new PetDetailsViewModel {
                            Name = "Garfield", OwnerName = "Selina"
                        },
                        new PetDetailsViewModel {
                            Name = "Abe", OwnerName = "Selina"
                        }
                    }
                },
                new GroupedByOwnerGenderViewModel {
                    OwnerGender = "Male",
                    Cats        = new List <PetDetailsViewModel> {
                        new PetDetailsViewModel {
                            Name = "Jasper", OwnerName = "Bruce"
                        },
                        new PetDetailsViewModel {
                            Name = "Garry", OwnerName = "Bruce"
                        }
                    }
                }
            };

            var mockService = new Mock <IPetsService>();

            mockService.Setup(x => x.GetCatsGroupedByOwnerGender())
            .ReturnsAsync(mockDataForGrouping);

            var controller = new PetsController(mockService.Object);

            IActionResult response = await controller.Get().ConfigureAwait(false);

            response.Should().BeOfType <OkObjectResult>();
            var resultObject = ((OkObjectResult)response).Value as List <GroupedByOwnerGenderViewModel>;

            resultObject.Should().NotBeNull();
            resultObject.Count.Should().Be(mockDataForGrouping.Count);

            JsonConvert.SerializeObject(resultObject).ToLower()
            .Should()
            .Be(JsonConvert.SerializeObject(mockDataForGrouping).ToLower());

            resultObject[0].OwnerGender.Should().Be("Female");
            resultObject[1].OwnerGender.Should().Be("Male");
        }
コード例 #5
0
ファイル: ApiControllerTests.cs プロジェクト: akki-s/cats
        public async Task Api_Get_Grouped_When_Exception_Should_Return_InternalServerError()
        {
            //mock carservice objects that throws exception
            var mockService = new Mock <IPetsService>();

            mockService.Setup(x => x.GetCatsGroupedByOwnerGender())
            .Throws(new Exception("exception occured"));

            var controller = new PetsController(mockService.Object);

            IActionResult response = await controller.Get().ConfigureAwait(false);

            response.Should().BeOfType <ObjectResult>();
            var statusCode = ((ObjectResult)response).StatusCode;

            statusCode.Should().Be(StatusCodes.Status500InternalServerError);
        }
コード例 #6
0
ファイル: ApiControllerTests.cs プロジェクト: akki-s/cats
        public async Task Api_Get_Grouped_When_No_Data_Should_Return_Null()
        {
            //mock petservice object that returns null
            var mockService = new Mock <IPetsService>();

            mockService.Setup(x => x.GetCatsGroupedByOwnerGender())
            .ReturnsAsync(() => null);

            var controller = new PetsController(mockService.Object);

            IActionResult response = await controller.Get().ConfigureAwait(false);

            response.Should().BeOfType <OkObjectResult>();
            var resultObject = ((OkObjectResult)response).Value as GroupedByOwnerGenderViewModel;

            resultObject.Should().BeNull();
        }
コード例 #7
0
        public void Get_Specific_Pet()
        {
            // Arrange
            var databaseName = Guid.NewGuid().ToString();
            var dbContext    = constructDbContext(databaseName);
            var pet1         = new Pet()
            {
                Name = "Luffy"
            };
            var pet2 = new Pet()
            {
                Name = "Ronny"
            };
            var pet3 = new Pet()
            {
                Name = "Senpai"
            };

            dbContext.AddRange(pet1, pet2, pet3);
            dbContext.SaveChanges();

            var pet4 = new Pet()
            {
                Name = "Rolo"
            };
            var mock = new Mock <IMapper>();

            mock.Setup(x => x.Map <PetDto>(pet4))
            .Returns(new PetDto
            {
                Id   = pet4.Id,
                Name = pet4.Name
            });

            var  dbContext2    = constructDbContext(databaseName);
            var  petsConroller = new PetsController(dbContext2, mock.Object);
            long petId         = 1;

            // Act
            var result = petsConroller.Get(petId);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Id, petId);
        }