///<inheritdoc/> public DetectedLicensePlate InsertNewDetectedPlate(string plateNumber, DateTime detectedDateTime, int camId, string imgUrl, double confidence) { if (!plateNumber.IsValidPlateNumber()) { throw new ArgumentException(Resources.Error_PlateNumberFomatInvalid); } if (confidence < 0 || confidence > 100) { // It seems like I can't edit resource file on Rider throw new ArgumentException(string.Format($"The confidence parameter must be between 0 and 100, is: {confidence}")); } var detectedPlateToInsert = new DetectedLicensePlate() { PlateNumber = plateNumber, DetectedDateTime = detectedDateTime, CamId = camId, ImgUrl = imgUrl, Confidence = confidence }; using (var ctx = _dbContextFactory.BuildHucaresContext()) { ctx.DetectedLicensePlates.Add(detectedPlateToInsert); ctx.SaveChanges(); } return(detectedPlateToInsert); }
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 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 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 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 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); }