public async void GetAllHabitats_GetArrayOfAllHabitats() { // Arrange var profile = new MammalAPI.Configuration.Mapper(); var configuration = new MapperConfiguration(cfg => cfg.AddProfile(profile)); IMapper mapper = new Mapper(configuration); //Mock context var testHabitats = GetTestHabitats(); var contextMock = new Mock <DBContext>(); contextMock.Setup(h => h.Habitats).ReturnsDbSet(testHabitats); //Mock Repo var logger = Mock.Of <ILogger <HabitatRepository> >(); var habitatRepoMock = new HabitatRepository(contextMock.Object, logger); //Mock IActionDescriptorCollectionProvider var actions = new List <ActionDescriptor> { new ActionDescriptor { AttributeRouteInfo = new AttributeRouteInfo() { Template = "/test", }, RouteValues = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "action", "Test" }, { "controller", "Test" }, }, } }; var mockDescriptorProvider = new Mock <IActionDescriptorCollectionProvider>(); mockDescriptorProvider.Setup(m => m.ActionDescriptors).Returns(new ActionDescriptorCollection(actions, 0)); //Setup new controller based on mocks var controller = new HabitatController(habitatRepoMock, mapper, mockDescriptorProvider.Object); //Act var result = await controller.GetAllHabitats(false); var contentResult = result.Result as OkObjectResult; HabitatDTO[] dto = (HabitatDTO[])contentResult.Value; //Assert Assert.Equal(2, dto.Length); }
public async void PostHabitat_Should_SaveOne() { var profile = new MammalAPI.Configuration.Mapper(); var config = new MapperConfiguration(c => c.AddProfile(profile)); IMapper mapper = new Mapper(config); List <Habitat> habitats = new List <Habitat>(); var habitatrepo = new Mock <IHabitatRepository>(); habitatrepo.Setup(h => h.Add <Habitat>(It.IsAny <Habitat>())); habitatrepo.Setup(h => h.GetAllHabitats(It.IsAny <Boolean>())).Returns(Task.FromResult(habitats)); habitatrepo.Setup(h => h.Save()).Returns(Task.FromResult(true)); var actions = new List <ActionDescriptor> { new ActionDescriptor { AttributeRouteInfo = new AttributeRouteInfo() { Template = "/test", }, RouteValues = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "action", "Test" }, { "controller", "Test" }, }, }, }; var mockDescriptorProvider = new Mock <IActionDescriptorCollectionProvider>(); mockDescriptorProvider.Setup(m => m.ActionDescriptors).Returns(new ActionDescriptorCollection(actions, 0)); var controller = new HabitatController(habitatrepo.Object, mapper, mockDescriptorProvider.Object); var habitatDTO = new HabitatDTO { HabitatID = 1, Name = "Habitat test" }; var result = await controller.PostHabitat(habitatDTO); var test = result.Result as CreatedResult; var dtoResult = (HabitatDTO)test.Value; Assert.Equal("Habitat test", dtoResult.Name); }