public void InsertNewDetectedPlate_WhenConfidenceNotCorrect_ShouldThrowError() { //Arrange var fakeIQueryable = new List <DetectedLicensePlate>().AsQueryable(); var fakeDbSet = A.Fake <DbSet <DetectedLicensePlate> >(); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act and Assert Assert.Throws <ArgumentException>(() => detectedPlateHelper.InsertNewDetectedPlate( "ABC001", new DateTime(2018, 09, 29), 1, "http://localhost:6969/images/cam01_21080929_235959", 101)); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustNotHaveHappened(); }
public void GetAllActiveDetectedPlatesByPlateNumber_WithStartDateEarlierThanEndDate_ShouldThrowError() { //Arrange var fakeHucaresContext = A.Fake <HucaresContext>(); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlatesRecords = new List <MissingLicensePlate>() { new MissingLicensePlate() { PlateNumber = "ABC001" } }; var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); A.CallTo(() => fakeMissingPlateHelper.GetPlateRecordByPlateNumber("ABC001")) .Returns(fakeMissingPlatesRecords); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act Assert.Throws <ArgumentException>(() => detectedPlateHelper.GetAllActiveDetectedPlatesByPlateNumber(plateNumber: "ABC001", startDateTime: new DateTime(2018, 10, 05), endDateTime: new DateTime(2018, 09, 05))); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustNotHaveHappened(); }
public void GetAllActiveDetectedPlatesByPlateNumber_WithEndDateAfterMLP_ShouldReturn() { //Arrange var expectedDetectedPlate = new DetectedLicensePlate() { Id = 0, PlateNumber = "ABC001", DetectedDateTime = new DateTime(2018, 10, 10) }; var fakeDetectedPlateList = new List <DetectedLicensePlate>() { expectedDetectedPlate, new DetectedLicensePlate() { Id = 2, PlateNumber = "ABC001", DetectedDateTime = new DateTime(2018, 09, 10) }, new DetectedLicensePlate() { Id = 3, PlateNumber = "ABC001", DetectedDateTime = new DateTime(2018, 11, 10) } }; var fakeMissingPlateList = new List <MissingLicensePlate>() { new MissingLicensePlate() { Id = 0, PlateNumber = expectedDetectedPlate.PlateNumber, SearchStartDateTime = new DateTime(2018, 10, 05), SearchEndDateTime = new DateTime(2018, 10, 15) } }; var fakeDbSetDetectedPlates = StorageTestsUtil.SetupFakeDbSet(fakeDetectedPlateList.AsQueryable()); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSetDetectedPlates); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); A.CallTo(() => fakeMissingPlateHelper.GetPlateRecordByPlateNumber(expectedDetectedPlate.PlateNumber)) .Returns(fakeMissingPlateList); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act var result = detectedPlateHelper.GetAllActiveDetectedPlatesByPlateNumber(plateNumber: expectedDetectedPlate.PlateNumber, endDateTime: new DateTime(2018, 11, 25)).ToList(); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustHaveHappened(); result.Count().ShouldBe(1); result.FirstOrDefault().ShouldBe(expectedDetectedPlate); }
public IHttpActionResult GetImage(DateTime dateTime, string fileName) { var endpoint = LocationToUrl.ConvertPathToUrl(fileName, dateTime); var missingList = DetectedPlateHelper.GetDetectedPlatesByImgUrl(endpoint) .Select(dlp => MissingPlateHelper.GetPlateRecordByPlateNumber(dlp.PlateNumber)) .Where(mlpList => 0 != mlpList.Count()) .Where(mlpList => mlpList.Where(mlp => mlp.Status == LicensePlateFoundStatus.Searching).Any()) .ToList(); if (!missingList.Any()) { throw new AccessViolationException(Resources.Error_FileAccessDenied); } var folderLocation = ImageManipulator.GenerateFolderLocationPath(dateTime); //TODO: Add regex check for ../ var filePath = Path.Combine(folderLocation, fileName) + ".jpg"; var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(File.OpenRead(filePath)), StatusCode = HttpStatusCode.OK }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); return(ResponseMessage(response)); }
public void DeletePlatesOlderThanDatetime_WithCorrectDateWithMissingNumber_ShouldReturn() { //Arrange var expectedRemainingDetectedLicensePlate = new DetectedLicensePlate() { DetectedDateTime = new DateTime(2018, 09, 10), PlateNumber = "FFF999" }; var expectedDeletedDetectedLicensePlate = new DetectedLicensePlate() { DetectedDateTime = new DateTime(2018, 09, 10), PlateNumber = "ABC123" }; var fakeDetectedPlatesList = new List <DetectedLicensePlate>() { expectedRemainingDetectedLicensePlate, expectedDeletedDetectedLicensePlate }; var fakeDbSetDetectedPlates = StorageTestsUtil.SetupFakeDbSet(fakeDetectedPlatesList.AsQueryable()); var fakeHucaresContext = A.Fake <HucaresContext>(); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSetDetectedPlates); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()) .Returns(new List <MissingLicensePlate>() { new MissingLicensePlate() { PlateNumber = expectedRemainingDetectedLicensePlate.PlateNumber } }); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act var deletedPlates = detectedPlateHelper.DeletePlatesOlderThanDatetime(new DateTime(2018, 10, 01)).ToList(); //Assert A.CallTo(() => fakeHucaresContext.DetectedLicensePlates).MustHaveHappened(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()).MustHaveHappened(); deletedPlates.Count.ShouldBe(1); deletedPlates.FirstOrDefault().ShouldBe(expectedDeletedDetectedLicensePlate); fakeHucaresContext.DetectedLicensePlates.FirstOrDefault() .ShouldBe(expectedRemainingDetectedLicensePlate); }
public IHttpActionResult AddDLP([FromBody] DemonstrationDlpInput input) { var imageLocation = ImageManipulator.SaveImage(input.CamId, input.DetectedDateTime, input.Img); var fileInfo = new FileInfo(imageLocation); var newLocation = ImageManipulator.MoveFileToPerm(fileInfo, input.DetectedDateTime); var imgUrl = LocationToUrlConverter.ConvertPathToUrl(fileInfo.Name, input.DetectedDateTime); var result = DetectedPlateHelper.InsertNewDetectedPlate(input.PlateNumber, input.DetectedDateTime, input.CamId, imgUrl, input.Confidence); return(Json(result)); }
public void GetAllDetectedPlatesByCamera_WithDates_ShouldReturn() { //Arrange var expectedDetectedPlate = new DetectedLicensePlate() { Id = 0, CamId = 0, DetectedDateTime = new DateTime(2018, 10, 10) }; var fakeDetectedPlateList = new List <DetectedLicensePlate>() { expectedDetectedPlate, new DetectedLicensePlate() { Id = 1, CamId = 0, DetectedDateTime = new DateTime(2018, 09, 10) }, new DetectedLicensePlate() { Id = 2, CamId = 0, DetectedDateTime = new DateTime(2018, 11, 30) }, new DetectedLicensePlate() { Id = 3, CamId = 1, DetectedDateTime = new DateTime(2018, 10, 10) } }; var fakeDbSetDetectedPlates = StorageTestsUtil.SetupFakeDbSet(fakeDetectedPlateList.AsQueryable()); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSetDetectedPlates); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act var result = detectedPlateHelper.GetAllDetectedPlatesByCamera(cameraId: expectedDetectedPlate.CamId, startDateTime: new DateTime(2018, 10, 05), endDateTime: new DateTime(2018, 10, 15)).ToList(); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustHaveHappened(); result.Count().ShouldBe(1); result.FirstOrDefault().ShouldBe(expectedDetectedPlate); }
public void GetAllDetectedPlatesByCamera_WithStartLaterThanEnd_ShouldThrow() { //Arrange var fakeHucaresContext = A.Fake <HucaresContext>(); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act & assert Assert.Throws <ArgumentException>(() => detectedPlateHelper.GetAllDetectedPlatesByCamera(cameraId: 0, startDateTime: new DateTime(2018, 10, 05), endDateTime: new DateTime(2018, 09, 05))); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustNotHaveHappened(); }
public IHttpActionResult GenerateFakeDLPData() { var detectedPlateHelper = new DetectedPlateHelper(); detectedPlateHelper.InsertNewDetectedPlate("JEZ123", new DateTime(2018, 10, 22), 1, "ipfs://hucares.io/detections/camera/28/20181022", 0.86); detectedPlateHelper.InsertNewDetectedPlate("JEZ123", new DateTime(2018, 10, 22), 2, "ipfs://hucares.io/detections/camera/23/20181022", 0.92); detectedPlateHelper.InsertNewDetectedPlate("JEZ123", new DateTime(2018, 10, 22), 1, "ipfs://hucares.io/detections/camera/28/20181022", 0.73); detectedPlateHelper.InsertNewDetectedPlate("BDI911", new DateTime(2018, 10, 20), 1, "ipfs://hucares.io/detections/camera/28/20181022", 0.71); detectedPlateHelper.InsertNewDetectedPlate("BDI911", new DateTime(2018, 10, 21), 1, "ipfs://hucares.io/detections/camera/28/20181022", 0.98); detectedPlateHelper.InsertNewDetectedPlate("BDI911", new DateTime(2018, 10, 22), 1, "ipfs://hucares.io/detections/camera/28/20181022", 0.95); detectedPlateHelper.InsertNewDetectedPlate("BDI911", new DateTime(2018, 10, 23), 2, "ipfs://hucares.io/detections/camera/23/20181022", 0.78); detectedPlateHelper.InsertNewDetectedPlate("HAH666", new DateTime(2018, 10, 25), 2, "ipfs://hucares.io/detections/camera/23/20181022", 0.999); return(Json("Fake DLP data generated")); }
public void InsertNewDetectedPlate_WhenAllInfoCorrect_ShouldSucceedAndReturn() { //Arrange var fakeIQueryable = new List <DetectedLicensePlate>().AsQueryable(); var fakeDbSet = A.Fake <DbSet <DetectedLicensePlate> >(); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act var expectedDetectedPlate = new DetectedLicensePlate() { PlateNumber = "ABC001", DetectedDateTime = new DateTime(2018, 09, 29), CamId = 1, ImgUrl = "http://localhost:6969/images/cam01_21080929_235959", Confidence = 75.75 }; var result = detectedPlateHelper.InsertNewDetectedPlate(expectedDetectedPlate.PlateNumber, expectedDetectedPlate.DetectedDateTime, expectedDetectedPlate.CamId, expectedDetectedPlate.ImgUrl, expectedDetectedPlate.Confidence); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDbSet.Add(result)) .MustHaveHappened(); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustHaveHappenedOnceExactly(); result.ShouldBe(expectedDetectedPlate); }
public void DeletePlatesOlderThanDatetime_WithDateInFuture_ShouldThrow() { //Arrange var fakeHucaresContext = A.Fake <HucaresContext>(); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()) .Returns(new List <MissingLicensePlate>()); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act & assert Assert.Throws <ArgumentException>(() => detectedPlateHelper.DeletePlatesOlderThanDatetime(DateTime.Today.AddDays(2))); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustNotHaveHappened(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()).MustNotHaveHappened(); }
public IHttpActionResult DeleteDLPs() { var dlpList = DetectedPlateHelper.GetAllDlps(); //delete images foreach (var dlp in dlpList) { var pathArray = dlp.ImgUrl.Split('/'); var fileName = pathArray[pathArray.Length - 1]; var dateTime = DateTime.Parse(pathArray[pathArray.Length - 2]); var folderLocation = ImageManipulator.GenerateFolderLocationPath(dateTime); var filePath = Path.Combine(folderLocation, fileName) + ".jpg"; if (File.Exists(filePath)) { File.Delete(filePath); } } //delete records DetectedPlateHelper.DeleteAll(); return(Ok()); }
public IHttpActionResult GetAllDetectedPlatesByPlateNumber(string plateNumber, DateTime?startDateTime = null, DateTime?endDateTime = null) { return(Json(DetectedPlateHelper.GetAllActiveDetectedPlatesByPlateNumber(plateNumber, startDateTime, endDateTime))); }
public IHttpActionResult GetAllActiveDetectedPlatesByPlateNumberAndCameraId(string plateNumber, int cameraId) { return(Json(DetectedPlateHelper.GetAllActiveDetectedPlatesByPlateNumberAndCameraId(plateNumber, cameraId))); }
public IHttpActionResult GetAllDetectedPlatesByCamera(int cameraId, DateTime?startDateTime = null, DateTime?endDateTime = null) { return(Json(DetectedPlateHelper.GetAllDetectedPlatesByCamera(cameraId, startDateTime, endDateTime))); }
public void GetAllDetectedMissingPlates_ShouldReturn() { //Arrange var expectedDetectedPlate = new DetectedLicensePlate() { Id = 1, PlateNumber = "ABC002", DetectedDateTime = new DateTime(2018, 09, 30), CamId = 2, ImgUrl = "http://localhost:6969/images", Confidence = 0.80 }; var fakeDetectedPlateList = new List <DetectedLicensePlate>() { expectedDetectedPlate, new DetectedLicensePlate() { Id = 0, PlateNumber = "ABC001", DetectedDateTime = new DateTime(2018, 09, 29), CamId = 1, ImgUrl = "http://localhost:6969/images", Confidence = 80 }, new DetectedLicensePlate() { Id = 2, PlateNumber = "ABC003", DetectedDateTime = new DateTime(2018, 09, 30), CamId = 2, ImgUrl = "http://localhost:6969/images", Confidence = 90.0 } }; var fakeMissingPlateList = new List <MissingLicensePlate>() { new MissingLicensePlate() { Id = 0, PlateNumber = expectedDetectedPlate.PlateNumber, SearchStartDateTime = new DateTime(2018, 09, 29), SearchEndDateTime = null, Status = LicensePlateFoundStatus.NotFound } }; var fakeDbSetDetectedPlates = StorageTestsUtil.SetupFakeDbSet(fakeDetectedPlateList.AsQueryable()); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.DetectedLicensePlates) .Returns(fakeDbSetDetectedPlates); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var fakeMissingPlateHelper = A.Fake <IMissingPlateHelper>(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()) .Returns(fakeMissingPlateList); var detectedPlateHelper = new DetectedPlateHelper(fakeDbContextFactory, fakeMissingPlateHelper); //Act var result = detectedPlateHelper.GetAllDetectedMissingPlates(); //Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustHaveHappened(); A.CallTo(() => fakeMissingPlateHelper.GetAllPlateRecords()).MustHaveHappened(); result.Count().ShouldBe(1); result.FirstOrDefault().ShouldBe(expectedDetectedPlate); }
public IHttpActionResult GetAllDetectedMissingPlates(int?page = null) { return(Json(DetectedPlateHelper.GetAllDetectedMissingPlates(page))); }