public async Task WhenValidApi_ReturnsOwnersList_FromDbAsync() { // Arrange var expected = DatabaseTestData.GetTestOwnerData(); var mockOwnerService = new Mock <IOwnerService>(); var mockOwnerCarsRepository = new Mock <IOwnerCarsRepository>(MockBehavior.Loose); mockOwnerCarsRepository.Setup(ownerCarsRepository => ownerCarsRepository.GetOwnerFromDbasync(It.IsAny <CancellationToken>())) .Returns(Task.FromResult(expected)); var controller = new OwnersController(mockOwnerService.Object, mockOwnerCarsRepository.Object, new ApiConfiguration()); // Act var actionResult = await controller.GetInternalAsync(CancellationToken.None); // Assert var result = actionResult as JsonResult; Assert.NotNull(result); var actual = result.Value as IEnumerable <Domain.Models.Owner>; var expectedCarCount = expected.Where(x => x.Cars != null).SelectMany(x => x.Cars).Count(); var actualCarCount = actual.Where(x => x.Cars != null).SelectMany(x => x.Cars).Count(); Assert.AreEqual(expectedCarCount, actualCarCount); Assert.AreEqual(expected.Count(), actual.Count()); }
public void AddOwnerTest() { var orepoMock = new OwnerRepositoryMock(); var controller = new OwnersController(orepoMock); Owner owner = new Owner("", "Kowalski", "555"); Assert.ThrowsException <Exception>(() => controller.AddOwner(owner)); }
public void OwnersController_OwnerExistsByName() { OwnersController ctrlr = new OwnersController(_dbContext, hostingEnv); var result = ctrlr.OwnerExistsByName("Litus Marshall"); Assert.Equal(true, result); result = ctrlr.OwnerExistsByName("Jimmy JoJo"); Assert.Equal(false, result); }
public async Task GetVehicles_GivenOwnerId_FetchByPassedOwnerId( string ownerId, [Frozen] IVehicleService vehicleService, OwnersController sut) { await sut.GetVehicles(ownerId); await vehicleService.Received().GetByOwnerAsync(ownerId); }
public async void OwnersController_Delete() { OwnersController ctrlr = new OwnersController(_dbContext, hostingEnv); var result = await ctrlr.DeleteConfirmed(1); var resultView = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(0, _dbContext.Owner.Count(d => d.OwnerId == 1)); Assert.Equal(0, _dbContext.MediaKitFile.Count(f => f.URL == "test.jpg")); }
public async void OwnersController_Details() { OwnersController ctrlr = new OwnersController(_dbContext, hostingEnv); Owner detailsOwner = _dbContext.Owner.SingleOrDefault(d => d.Name == "Savannah State University"); var result = await ctrlr.Details(detailsOwner.OwnerId); var resultView = Assert.IsType <ViewResult>(result); var viewModel = Assert.IsType <Owner>(resultView.ViewData.Model); Assert.Equal("Savannah State University", viewModel.Name); }
public async void OwnersController_Index() { OwnersController ctrlr = new OwnersController(_dbContext, hostingEnv); var result = await ctrlr.Index(); var resultView = Assert.IsType <ViewResult>(result); var viewModel = Assert.IsType <List <Owner> >(resultView.ViewData.Model).ToList(); Assert.Equal(1, viewModel.Count(d => d.OwnerId == 1)); Assert.Equal(1, viewModel.Count(d => d.OwnerId == 2)); Assert.Equal(1, viewModel.Count(d => d.OwnerId == 3)); }
public async Task GetVehicles_ExceptionThrown_ShouldLog( string ownerId, Exception exception, [Frozen] ILogger <OwnersController> logger, [Frozen] IVehicleService vehicleService, OwnersController sut) { vehicleService.GetByOwnerAsync(Arg.Any <string>()).Throws(exception); await sut.GetVehicles(ownerId); logger.ReceivedWithAnyArgs().LogError(exception, $"Error fetching vehicle for owner {ownerId}."); }
public async Task GetVehicles_OwnerIdNull_Returns400( OwnersController sut) { var result = (await sut.GetVehicles(null)) as BadRequestObjectResult; result.Should().NotBeNull(); result.StatusCode.Should().Be(StatusCodes.Status400BadRequest); var errorInfo = result.Value as ErrorInfo; errorInfo.Should().NotBeNull(); errorInfo.Type.Should().Be(ErrorType.Validation); errorInfo.Messages.Should().BeEquivalentTo($"OwnerId is required."); }
public async Task GetVehicles_ExceptionThrown_Returns500( string ownerId, [Frozen] IVehicleService vehicleService, OwnersController sut) { vehicleService.GetByOwnerAsync(Arg.Any <string>()).Throws(new Exception()); var result = (await sut.GetVehicles(ownerId)) as ObjectResult; result.Should().NotBeNull(); result.StatusCode.Should().Be(StatusCodes.Status500InternalServerError); var errorInfo = result.Value as ErrorInfo; errorInfo.Should().NotBeNull(); errorInfo.Type.Should().Be(ErrorType.UnhandledError); errorInfo.Messages.Should().BeEquivalentTo($"Error fetching vehicles for owner id {ownerId}."); }
public async Task GetVehicles_FetchedListOfVehicles_Returns200WithVehicles( string ownerId, IEnumerable <VehicleViewModel> vehicles, [Frozen] IVehicleService vehicleService, OwnersController sut) { vehicleService.GetByOwnerAsync(Arg.Any <string>()).Returns(vehicles); var result = (await sut.GetVehicles(ownerId)) as OkObjectResult; result.Should().NotBeNull(); result.StatusCode.Should().Be(StatusCodes.Status200OK); var vehiclesResult = result.Value as IEnumerable <VehicleViewModel>; vehiclesResult.Should().NotBeNull(); vehiclesResult.Should().BeEquivalentTo(vehicles); }
public void Setup() { FakeOwnerId = Guid.Parse("8cc32b40-578d-47c1-bb9f-63240737243f"); FakeNotFoundOwnerId = Guid.Parse("00000000-0000-0000-0000-000000000000"); FakeExistOwnerId = Guid.Parse("b5b1a0c6-efc7-43b4-91b1-024a0268a7cf"); FakeOwner = GetOwnerFake(FakeOwnerId); FakeNotFoundOwner = GetOwnerFake(FakeNotFoundOwnerId); FakeExistOwner = GetOwnerFake(FakeExistOwnerId); _ownerRepositoryMock.Setup(x => x.GetOwner(It.Is <Guid>(x => x == FakeOwnerId))) .Returns(Task.FromResult(FakeOwner)); _ownerRepositoryMock.Setup(x => x.GetOwner(It.Is <Guid>(x => x == FakeExistOwnerId))) .Returns(Task.FromResult(FakeExistOwner)); _ownerRepositoryMock.Setup(x => x.GetOwners()) .Returns(Task.FromResult(new List <Owner>() { FakeOwner })); _ownerRepositoryMock.Setup(x => x.CreateOwner(It.Is <Owner>(x => x.IdOwner == FakeOwnerId))) .Returns(Task.FromResult(FakeOwner)); _ownerRepositoryMock.Setup(x => x.UpdateOwner(It.Is <Owner>(x => x.IdOwner == FakeOwnerId))) .Returns(Task.FromResult(FakeOwner)); _ownerRepositoryMock.Setup(x => x.DeleteOwner(It.Is <Owner>(x => x.IdOwner == FakeOwnerId))) .Returns(Task.FromResult(true)); Owner nullObj = null; _ownerRepositoryMock.Setup(x => x.GetOwner(It.Is <Guid>(x => x == FakeNotFoundOwnerId))) .Returns(Task.FromResult(nullObj)); _ownerRepositoryMock.Setup(x => x.OwnerExists(It.Is <Guid>(x => x == FakeNotFoundOwnerId))) .Returns(false); _ownerRepositoryMock.Setup(x => x.OwnerExists(It.Is <Guid>(x => x == FakeExistOwnerId))) .Returns(true); _ownerRepositoryMock.Setup(x => x.CreateOwner(It.Is <Owner>(x => x.IdOwner == FakeExistOwnerId))) .Throws(new DbUpdateException()); _ownerRepositoryMock.Setup(x => x.UpdateOwner(It.Is <Owner>(x => x.IdOwner == FakeNotFoundOwnerId))) .Throws(new DbUpdateConcurrencyException()); _ownerRepositoryMock.Setup(x => x.DeleteOwner(It.Is <Owner>(x => x.IdOwner == FakeExistOwnerId))) .Returns(Task.FromResult(false)); OwnerController = new OwnersController( _loggerMock.Object, _ownerRepositoryMock.Object ); }
public async Task GetVehicles_NoVehiclesFound_Returns404( string ownerId, [Frozen] IVehicleService vehicleService, OwnersController sut) { vehicleService.GetByOwnerAsync(Arg.Any <string>()) .Returns((IEnumerable <VehicleViewModel>)null); var result = (await sut.GetVehicles(ownerId)) as NotFoundObjectResult; result.Should().NotBeNull(); result.StatusCode.Should().Be(StatusCodes.Status404NotFound); var errorInfo = result.Value as ErrorInfo; errorInfo.Should().NotBeNull(); errorInfo.Type.Should().Be(ErrorType.InvalidOperation); errorInfo.Messages.Should().BeEquivalentTo($"No vehicles found for ownerId {ownerId}."); }