public async Task PUT_ById_RETURNS_OK() { _mockDataManager.Setup(manager => manager.UpdateAsync(It.IsAny <Vehicle>())) .ReturnsAsync(true); var vehicle = await _controller.Put(1, FakeUpdateRequestObject()); var response = Assert.IsType <ApiResponse>(vehicle); Assert.Equal(200, response.StatusCode); }
public void Should_not_create_or_update_vehicle_on_post_put_when_provided_invalid_make() { //Arrange var _vehicleRepo = new Mock <IRepository <VehicleModel> >(); var id = Guid.NewGuid(); var post = new PostVehicleModel() { Make = null, Model = "test model", Odometer = 0, Plate = "test plate", VehicleType = VehicleTypeEnum.Electric, Year = 0, }; _controller = new VehiclesController(_vehicleRepo.Object, _serviceRepo.Object); //Act var result = JsonConvert.DeserializeObject <ResultModel>(_controller.Post(post)); var result1 = JsonConvert.DeserializeObject <ResultModel>(_controller.Put(post.ToVehicleModel())); //Assert Assert.True(result.IsError); Assert.True(result1.IsError); }
public async void UpdateVehicle_ReturnVehicleUpdated(int id) { // Arrange var mockRepo = new Mock <IVehicleCatalogRepository>(); mockRepo.Setup(repo => repo.GetVehicle(id)) .Returns(Task.FromResult <Vehicle>(new Vehicle() { Id = id, Value = 10000.00M, BrandId = 1, ModelId = 1, YearModel = 1998, Fuel = "Gasoline" })); mockRepo.Setup(repo => repo.SaveAll()) .Returns(Task.FromResult <bool>(true)); var mapper = _dependencyFixture.ServiceProvider.GetService <IMapper>(); var logger = Mock.Of <ILogger <VehiclesController> >(); var controller = new VehiclesController(mockRepo.Object, mapper, logger); VehicleForUpdate newVehicle = new VehicleForUpdate() { value = 18000.50M, brandId = 1, modelId = 1, yearModel = 1998, fuel = "Gasoline" }; // Act var result = await controller.Put(id, newVehicle); // Assert var okResult = Assert.IsType <CreatedAtRouteResult>(result); var returnValue = Assert.IsType <string>(okResult.Value); Assert.Equal("Vehicle updated.", returnValue); }
public void Should_create_or_update_vehicle_on_post_put_when_provided_valid_post_vehicle() { //Arrange var _vehicleRepo = new Mock <IRepository <VehicleModel> >(); _vehicleRepo.Setup(moq => moq.Read()).Returns(new System.Collections.Generic.List <VehicleModel>() { new VehicleModel() { Plate = "test" } }); var id = Guid.NewGuid(); var post = new PostVehicleModel() { Make = "test make", Model = "test model", Odometer = 0, Plate = "test plate", VehicleType = VehicleTypeEnum.Electric, Year = 0, }; _controller = new VehiclesController(_vehicleRepo.Object, _serviceRepo.Object); //Act var result = JsonConvert.DeserializeObject <ResultModel>(_controller.Post(post)); var result1 = JsonConvert.DeserializeObject <ResultModel>(_controller.Put(post.ToVehicleModel())); //Assert Assert.False(result.IsError); Assert.False(result1.IsError); }
public void PutVehicleWithNewVehicleIdResultsInCreate() { var mock = new Mock <IVehicleRepositorical>(); mock.Setup(m => m.FindById(It.Is <string>(s => s == "2"))).Returns(default(Vehicle)); Vehicle newVehicle = null; mock.Setup(m => m.AddNewVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())) .Callback((string i, Vehicle p) => { newVehicle = p; }); var controller = new VehiclesController(mock.Object) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; var result = controller.Put("2", new Vehicle { VehicleIdentifier = "name 2", VehicleIdentifier = "10.1" }); var createdAtRouteResult = Assert.IsType <CreatedAtRouteResult>(result); var Vehicle = Assert.IsType <Vehicle>(createdAtRouteResult.Value); Assert.Equal("name 2", Vehicle.VehicleIdentifier); Assert.Equal("10.1", Vehicle.VehicleIdentifier); Assert.NotNull(newVehicle); }
public void PutVehicleWithNewVehicleIdResultsInCreate() { var mock = new Mock <IVehicleRepositorical>(); mock.Setup(m => m.FindById(It.Is <string>(s => s == "2"))) .Returns(default(Vehicle)); Vehicle newVehicle = null; mock.Setup(m => m.AddNewVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())) .Callback((string _, Vehicle p) => { newVehicle = p; }); var controller = new VehiclesController(mock.Object) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; var result = controller.Put("2", new VehicleInfo { ModelIdentifier = "name 2", VehicleIdentifier = "10.1" }); var createdAtRouteResult = Assert.IsType <CreatedAtRouteResult>(result); var vehicleInfo = Assert.IsType <VehicleInfo>(createdAtRouteResult.Value); Assert.Equal("name 2", vehicleInfo.ModelIdentifier); Assert.Equal("10.1", vehicleInfo.VehicleIdentifier); Assert.NotNull(newVehicle); //Assert.Equal((int) HttpStatusCode.MethodNotAllowed, createdAtRouteResult.StatusCode); //Assert.True(controller.Response.Headers.ContainsKey("Allow")); //Assert.Equal(new[] {"GET", "POST"}, // controller.Response.Headers["Allow"].Select(e => e) // .Select(e => e.Split(", ", StringSplitOptions.RemoveEmptyEntries)).SelectMany(e => e).ToArray()); }
public async void Put_WhenNotValid() { // arrange var testVehicle = TestVehicleModel(); var errorCodeConverter = new ErrorCodeConverter(); var vehicleServiceMoq = new Mock <IVehicleService>(); vehicleServiceMoq.Setup(x => x.Update(It.IsAny <Vehicle>())) .ReturnsAsync(() => new Result <Guid>(ResultCode.BadRequest, testVehicle.Id)); var dataStructureConverterMoq = new Mock <IDataStructureConverter>(); var sut = new VehiclesController(vehicleServiceMoq.Object, errorCodeConverter, dataStructureConverterMoq.Object) { ControllerContext = DefaultControllerContext() }; // act var result = await sut.Put(testVehicle.Id, testVehicle); var badRequestResult = result as BadRequestResult; // assert Assert.NotNull(badRequestResult); }
public void Put_UpdatesVehicleProperties() { var vehicles = new List <Vehicle> { new Vehicle { Id = 1, RegistrationNumber = "1" }, }.AsQueryable(); var vehiclesMockSet = MockDbSetHelper.CreateMockSet(vehicles); var mockContext = new Mock <InstantDeliveryContext>(); mockContext.Setup(c => c.Vehicles).Returns(vehiclesMockSet.Object); var controller = new VehiclesController(mockContext.Object); var selected = vehiclesMockSet.Object.FirstOrDefault(); vehiclesMockSet.Object.Attach(selected); selected.RegistrationNumber = "2"; var vehicleDto = Mapper.Map <VehicleDto>(selected); controller.Put(vehicleDto); var result = vehiclesMockSet.Object.FirstOrDefault(); Assert.Equal(result?.RegistrationNumber, "2"); }
public void Put_NullObject_Returns400() { controller = new VehiclesController(mockVehicleRepo.Object); var result = controller.Put(null); Assert.IsType(typeof(BadRequestResult), result); }
// TODO: other invalid types if necessary public void PutVehicleWithMalformedVehicleResultsInBadRequest(VehicleInfo Vehicle) { var mock = new Mock <IVehicleRepositorical>(); var controller = new VehiclesController(mock.Object); var result = controller.Put("1", Vehicle); var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result); // TODO: Error object }
public void Put_UpdateSuccessful_Returns204() { mockVehicleRepo.Setup(x => x.Update(It.IsAny <Vehicle>())).Returns(true); controller = new VehiclesController(mockVehicleRepo.Object); var result = controller.Put(GenerateTestVehicle(1)); Assert.IsType(typeof(NoContentResult), result); }
public void Put_UpdateUnsuccessful_Returns404() { mockVehicleRepo.Setup(x => x.Update(It.IsAny <Vehicle>())).Returns(false); controller = new VehiclesController(mockVehicleRepo.Object); var result = controller.Put(GenerateTestVehicle(1)); Assert.IsType(typeof(HttpNotFoundResult), result); }
//[Fact] public void CheckOutVehicle() { //Act var result = valuesController.Put(1); string json = JsonConvert.SerializeObject(result); Response response = JsonConvert.DeserializeObject <Response>(json); //Assert Assert.Equal(200, response.StatusCode); }
public void Should_not_create_or_update_vehicle_on_post_put_when_provided_null_post_vehicle() { //Arrange var _vehicleRepo = new Mock <IRepository <VehicleModel> >(); var _vehicleValidation = new Mock <IServicesValidation>(); _controller = new VehiclesController(_vehicleRepo.Object, _serviceRepo.Object); //Act var result = JsonConvert.DeserializeObject <ResultModel>(_controller.Post(null)); var result1 = JsonConvert.DeserializeObject <ResultModel>(_controller.Put(null)); //Assert Assert.True(result.IsError); Assert.True(result1.IsError); }
public void PutUpdateVehicleConstraintViolationResultsInBadRequest() { var mock = new Mock <IVehicleRepositorical>(); mock.Setup(m => m.FindById(It.Is <string>(s => s == "2"))).Returns(new Vehicle { MakeIdentifier = "TestName", VehicleIdentifier = "10" }); mock.Setup(m => m.ReplaceExistingVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())) .Throws <VehicleConstraintViolatedException>(); var controller = new VehiclesController(mock.Object); var result = controller.Put("2", new VehicleInfo { ModelIdentifier = "name 2", VehicleIdentifier = "10.1" }); var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result); var errorResponse = Assert.IsType <ErrorResponseInfo>(badRequestObjectResult.Value); }
public void Put() { // Arrange VehiclesController controller = new VehiclesController(); var vehicle = new Vehicle(1, "bats", "batmobile", 2016); InMemoryVehicleRepository.Instance.Add(vehicle); // Act var updatedVehicle = vehicle.CloneWith(vehicle.Id, year: 2010); controller.Put(updatedVehicle); var result = controller.Get(vehicle.Id); // Assert Assert.AreEqual(updatedVehicle.Year, result.Year); }
public void PutCreateInvalidOperationResultsInNoContent() { var mock = new Mock <IVehicleRepositorical>(); Vehicle updatedVehicle = null; mock.Setup(m => m.FindById(It.Is <string>(s => s == "2"))).Returns(default(Vehicle)); mock.Setup(m => m.AddNewVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())).Throws <InvalidOperationException>(); mock.Setup(m => m.ReplaceExistingVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())).Callback((string i, Vehicle p) => { updatedVehicle = p; }); var controller = new VehiclesController(mock.Object) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; var result = controller.Put("2", new Vehicle { VehicleIdentifier = "name 2", VehicleIdentifier = "10.1" }); var noContentResult = Assert.IsType <NoContentResult>(result); }
public void PutUpdateVehicleIdResultsInNoContent() { var mock = new Mock <IVehicleRepositorical>(); mock.Setup(m => m.FindById(It.Is <string>(s => s == "2"))) .Returns(new Vehicle { MakeIdentifier = "TestName", VehicleIdentifier = "2" }); Vehicle updatedVehicle = null; mock.Setup(m => m.ReplaceExistingVehicle(It.Is <string>(s => s == "2"), It.IsAny <Vehicle>())) .Callback((string i, Vehicle p) => { updatedVehicle = p; }); var controller = new VehiclesController(mock.Object); var result = controller.Put("2", new VehicleInfo { ModelIdentifier = "name 2", VehicleIdentifier = "10.1" }); var noContentResult = Assert.IsType <NoContentResult>(result); // todo: validate result content //var Vehicle = Assert.IsType<Vehicle>(noContentResult.Value); //Assert.Equal("name 2", Vehicle.VehicleIdentifier); //Assert.Equal("10.1", Vehicle.VehicleIdentifier); Assert.NotNull(updatedVehicle); }