Ejemplo n.º 1
0
            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());
            }
Ejemplo n.º 2
0
        public void AddOwnerTest()
        {
            var   orepoMock  = new OwnerRepositoryMock();
            var   controller = new OwnersController(orepoMock);
            Owner owner      = new Owner("", "Kowalski", "555");

            Assert.ThrowsException <Exception>(() => controller.AddOwner(owner));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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"));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 12
0
        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}.");
        }