public MissingLicensePlate InsertPlateRecord(string plateNumber, DateTime searchStartDatetime) { if (!plateNumber.IsValidPlateNumber()) { throw new ArgumentException(Resources.Error_PlateNumberFomatInvalid); } var missingPlateObj = new MissingLicensePlate() { PlateNumber = plateNumber, SearchStartDateTime = searchStartDatetime, Status = LicensePlateFoundStatus.Searching }; using (var ctx = _dbContextFactory.BuildHucaresContext()) { if (ctx.MissingLicensePlates.Any(m => m.PlateNumber == plateNumber && m.Status == LicensePlateFoundStatus.Searching)) { throw new Exception(Resources.Error_MissingPlateExists); } ctx.MissingLicensePlates.Add(missingPlateObj); ctx.SaveChanges(); } return(missingPlateObj); }
public async Task DeletePlateByNumber_WhenCalled_ShouldCallHelper() { //Arrange var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var expectedPlateNumber = "RRR587"; var expectedMissingPlateInfo = new MissingLicensePlate() { PlateNumber = expectedPlateNumber }; A.CallTo(() => fakeMissingPlateHelper.DeletePlateByNumber(expectedPlateNumber)) .Returns(expectedMissingPlateInfo); var mlpController = new MissingPlateController() { MissingPlateHelper = fakeMissingPlateHelper, Request = new HttpRequestMessage() }; //Act var result = mlpController.DeletePlateRecordByNumber(expectedPlateNumber); //Assert A.CallTo(() => fakeMissingPlateHelper.DeletePlateByNumber(expectedPlateNumber)) .MustHaveHappenedOnceExactly(); var httpResponse = await result.ExecuteAsync(new CancellationToken()); var jsonContent = await httpResponse.Content.ReadAsStringAsync(); var expectedJson = JsonConvert.SerializeObject(expectedMissingPlateInfo); jsonContent.ShouldBe(expectedJson); }
public IHttpActionResult Post([FromBody] MLPPostParams mlpParams) { var mlp = new MissingLicensePlate() { PlateNumber = mlpParams.PlateNumber, SearchStartDateTime = mlpParams.SearchStartDateTime }; using (var ctx = DbContextFactory.BuildHucaresContext()) { ctx.MissingLicensePlates.Add(mlp); ctx.SaveChanges(); } return(Json(mlp)); }
public void DeletePlateByNumber_WhenPlateNumberExist_ShouldSucceed() { //Arrange var missingPlateObj = new MissingLicensePlate() { PlateNumber = "ZOO555" }; var fakeIQueryable = new List <MissingLicensePlate>() { new MissingLicensePlate() { PlateNumber = "ZZZ123" }, missingPlateObj }.AsQueryable(); var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.MissingLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var missingPlateHelper = new MissingPlateHelper(fakeDbContextFactory); //Act var result = missingPlateHelper.DeletePlateByNumber(missingPlateObj.PlateNumber); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDbSet.Remove(missingPlateObj)) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustHaveHappenedOnceExactly(); result.ShouldBe(missingPlateObj); }
public void UpdatePlateRecord_WhenRecordWithIdExist_ShouldUpdateRecord() { //Arrange var missingPlateObj = new MissingLicensePlate() { Id = 1, PlateNumber = "FOF150" }; var fakeIQueryable = new List <MissingLicensePlate>() { missingPlateObj }.AsQueryable(); var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.MissingLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var missingPlateHelper = new MissingPlateHelper(fakeDbContextFactory); //Act var expectedPlateNumber = "TRE145"; var result = missingPlateHelper.UpdatePlateRecord(missingPlateObj.Id, expectedPlateNumber, DateTime.Now); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDbSet.Add(A <MissingLicensePlate> .Ignored)) .MustNotHaveHappened(); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustHaveHappenedOnceExactly(); result.ShouldBe(missingPlateObj); missingPlateObj.PlateNumber.ShouldBe(expectedPlateNumber); }
public void MarkFoundPlate_WhenPlateIdExist_ShouldSucceed() { var missingPlateObj = new MissingLicensePlate() { Id = 1, SearchStartDateTime = new DateTime(2018, 05, 08), Status = LicensePlateFoundStatus.NotFound }; //Arrange var fakeIQueryable = new List <MissingLicensePlate>() { missingPlateObj }.AsQueryable(); var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.MissingLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var expectedSearch = LicensePlateFoundStatus.Found; var missingPlateHelper = new MissingPlateHelper(fakeDbContextFactory); var result = missingPlateHelper.MarkFoundPlate(missingPlateObj.Id, DateTime.Now, expectedSearch); //Act & Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDbSet.Add(A <MissingLicensePlate> .Ignored)) .MustNotHaveHappened(); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustHaveHappenedOnceExactly(); result.ShouldBe(missingPlateObj); missingPlateObj.Status.ShouldBe(expectedSearch); }
public async Task UpdateMissingPlateRecord_WhenCalled_ShouldCallHelper() { //Arrange var expectedPlateNumber = "BAA254"; var expectedSearchDateTime = new DateTime(2018, 05, 17); var expectedDataModel = new PostPlateRecordDataModel() { PlateNumber = expectedPlateNumber, SearchStartDateTime = expectedSearchDateTime, }; var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var expectedId = 5; var expectedMissingPlateInfo = new MissingLicensePlate() { Id = expectedId }; A.CallTo(() => fakeMissingPlateHelper.UpdatePlateRecord(expectedId, expectedPlateNumber, expectedSearchDateTime)) .Returns(expectedMissingPlateInfo); var mlpController = new MissingPlateController() { MissingPlateHelper = fakeMissingPlateHelper, Request = new HttpRequestMessage() }; //Act var result = mlpController.UpdatePlateRecordById(expectedId, expectedDataModel); //Assert A.CallTo(() => fakeMissingPlateHelper.UpdatePlateRecord(expectedId, expectedPlateNumber, expectedSearchDateTime)) .MustHaveHappenedOnceExactly(); var httpResponse = await result.ExecuteAsync(new CancellationToken()); var jsonContent = await httpResponse.Content.ReadAsStringAsync(); var expectedJson = JsonConvert.SerializeObject(expectedMissingPlateInfo); jsonContent.ShouldBe(expectedJson); }
public async Task MarkFoundMissingPlate_WhenCalled_ShouldCallHelper() { var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var expectedId = 5; var requestedDateTime = new DateTime(2018, 05, 15); var expectedSearch = LicensePlateFoundStatus.Found; var expectedDataModel = new MarkFoundRecordDataModel() { EndDateTime = new DateTime(2018, 05, 15), Status = LicensePlateFoundStatus.Found, }; var expectedMissingPlateInfo = new MissingLicensePlate() { Id = expectedId }; A.CallTo(() => fakeMissingPlateHelper.MarkFoundPlate(expectedId, requestedDateTime, expectedSearch)) .Returns(expectedMissingPlateInfo); var mlpController = new MissingPlateController() { MissingPlateHelper = fakeMissingPlateHelper, Request = new HttpRequestMessage() }; //Act var result = mlpController.MarkFoundMissingPlate(expectedId, expectedDataModel); //Assert A.CallTo(() => fakeMissingPlateHelper.MarkFoundPlate(expectedId, requestedDateTime, expectedSearch)) .MustHaveHappenedOnceExactly(); var httpResponse = await result.ExecuteAsync(new CancellationToken()); var jsonContent = await httpResponse.Content.ReadAsStringAsync(); var expectedJson = JsonConvert.SerializeObject(expectedMissingPlateInfo); jsonContent.ShouldBe(expectedJson); }