public void GetTruck_WithData_OkResult()
        {
            var resultData = new GetTruckResult
            {
                Id              = Guid.NewGuid().ToString(),
                TruckType       = TruckType.FH,
                ModelYear       = DateTime.Now.Year,
                FabricationYear = DateTime.Now.Year,
                Name            = "Truck",
                Plate           = "AAA0000"
            };

            var mockService = new Mock <ITruckService>();

            mockService.Setup(m => m.GetSingle(It.IsAny <string>())).Returns(resultData);

            var subject  = new TrucksController(Mock.Of <ILogger <TrucksController> >(), mockService.Object);
            var response = subject.GetTruck(resultData.Id);

            Assert.NotNull(response);
            Assert.IsType <ActionResult <GetTruckResult> >(response);

            var result = response.Result;

            Assert.NotNull(result);
            Assert.IsType <OkObjectResult>(result);

            var value = (result as OkObjectResult).Value as GetTruckResult;

            Assert.NotNull(value);
            Assert.Equal(resultData, value);
        }
        public void TestInitialize()
        {
            FakeUnitOfWork = new FakeUnitOfWork();

            Mapper = new Mapper(new MapperConfiguration(c => c.AddProfile(new MappingProfile())));

            Logger = new Mock <ILogger <TrucksController> >();

            TruckService = new Mock <TruckService>(FakeUnitOfWork, Mapper);

            Controller = new TrucksController(Logger.Object, TruckService.Object);
        }
        public void getAllFromTrucksControllerShouldReturnAllTrucksInJsonFormat()
        {
            //arrange
            var controller = new TrucksController(_context);
            //act
            var result = controller.GetAll();

            Console.WriteLine(result.Value);
            Console.Read();
            //assert
            result.Should().BeOfType <JsonResult>("Because result should be a jsonResult");
        }
        public void Delete_ShouldThrowException(int id)
        {
            // Arrange
            TruckService = new Mock <TruckService>(new FakeUnitOfWorkWithException(), Mapper);

            Controller = new TrucksController(Logger.Object, TruckService.Object);

            // Act
            var result = Controller.Delete(id, new TruckViewModel {
                Id = id
            }) as ViewResult;

            var model = (TruckViewModel)result.Model;

            // Assert
            Assert.AreEqual(id, model.Id, "Exception was not thrown");
        }
        public void GetTrucks_EmptyData_NotFoundResult()
        {
            var mockService = new Mock <ITruckService>();

            mockService.Setup(m => m.GetAll()).Returns(new List <GetTruckResult>());

            var subject  = new TrucksController(Mock.Of <ILogger <TrucksController> >(), mockService.Object);
            var response = subject.GetTrucks();

            Assert.NotNull(response);
            Assert.IsType <ActionResult <IEnumerable <GetTruckResult> > >(response);

            var result = response.Result;

            Assert.NotNull(result);
            Assert.IsType <NotFoundResult>(result);
        }
        public void UpdateTruck_BadData_BadRequestResult()
        {
            var mockService = new Mock <ITruckService>();

            mockService.Setup(m => m.Update(It.IsAny <string>(), It.IsAny <UpdateTruckInput>())).Throws <Exception>();

            var subject  = new TrucksController(Mock.Of <ILogger <TrucksController> >(), mockService.Object);
            var response = subject.UpdateTruck(Guid.NewGuid().ToString(), new UpdateTruckInput());

            Assert.NotNull(response);
            Assert.IsType <ActionResult <GetTruckResult> >(response);

            var result = response.Result;

            Assert.NotNull(result);
            Assert.IsType <BadRequestResult>(result);
        }
        public void UpdateTruck_NonExistingData_NotFoundResult()
        {
            var mockService = new Mock <ITruckService>();

            mockService.Setup(m => m.Update(It.IsAny <string>(), It.IsAny <UpdateTruckInput>())).Returns(null as GetTruckResult);

            var subject  = new TrucksController(Mock.Of <ILogger <TrucksController> >(), mockService.Object);
            var response = subject.UpdateTruck(Guid.NewGuid().ToString(), new UpdateTruckInput());

            Assert.NotNull(response);
            Assert.IsType <ActionResult <GetTruckResult> >(response);

            var result = response.Result;

            Assert.NotNull(result);
            Assert.IsType <NotFoundResult>(result);
        }
        public void GetTruck_EmptyData_NotFoundResult()
        {
            var mockService = new Mock <ITruckService>();

            mockService.Setup(m => m.GetSingle(It.IsAny <string>())).Returns(null as GetTruckResult);

            var subject  = new TrucksController(Mock.Of <ILogger <TrucksController> >(), mockService.Object);
            var response = subject.GetTruck(string.Empty);

            Assert.NotNull(response);
            Assert.IsType <ActionResult <GetTruckResult> >(response);

            var result = response.Result;

            Assert.NotNull(result);
            Assert.IsType <NotFoundResult>(result);
        }