public async Task GetSpots_HaveTwoSpots_ReturnOkEmptyList() { //Arrange Mapper.Initialize(cfg => { cfg.CreateMap <City, CityDto>(); cfg.CreateMap <Spot, SpotDto>() .ForMember(dest => dest.Type, opt => opt.MapFrom(src => src.Type.Name)); }); var cityInfoRepoMock = new Mock <ICityInfoRepository>(); var loggerMock = new Mock <ILogger <SpotController> >(); var urlHelperMock = new Mock <IUrlHelper>(); var param = new SpotResourceParameters() { cityId = 1, SearchQuery = "", Type = "" }; cityInfoRepoMock.Setup(c => c.GetSpotsForCity(param)).Returns(() => new List <Spot>() { new Spot() { Id = 1, CityId = 1, Name = "Test Spot 1", Description = "Desc 1" }, new Spot() { Id = 2, CityId = 1, Name = "Test Spot 2", Description = "Desc 2" } }); var controller = new SpotController(cityInfoRepoMock.Object, loggerMock.Object, urlHelperMock.Object); //Act var result = controller.GetSpotsInCity(param); //Assert var okResult = result.Should().BeOfType <OkObjectResult>(); var spots = okResult.Subject.Value.Should().BeAssignableTo <LinkedCollectionResourceWrapperDto <SpotDto> >().Subject; spots.Value.Count().Should().Be(2); }
public async Task GetSpots_EmptySpots_ReturnNotFound() { //Arrange var cityInfoRepoMock = new Mock <ICityInfoRepository>(); var loggerMock = new Mock <ILogger <SpotController> >(); var urlHelperMock = new Mock <IUrlHelper>(); var param = new SpotResourceParameters() { cityId = 1, SearchQuery = "", Type = "" }; cityInfoRepoMock.Setup(c => c.GetSpotsForCity(param)).Returns(() => new List <Spot>()); var controller = new SpotController(cityInfoRepoMock.Object, loggerMock.Object, urlHelperMock.Object); //Act var result = controller.GetSpotsInCity(param); //Assert var notFound = result.Should().BeOfType <NotFoundResult>(); }