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); }
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); }
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"), ""); }
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"); }
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); }
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(); }
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); }