Esempio n. 1
0
        public void GetAllPlateRecords_WhenDbIsEmpty_ShouldThrowEmptyDB()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>().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.GetAllPlateRecords();

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();

            result.Count().ShouldBe(0);
        }
        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);
        }
Esempio n. 3
0
        public void UpdateCameraSource_WhenRecordWithIdDoesNotExist_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>().AsQueryable();
            var fakeDbSet      = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act & Assert
            Assert.Throws <ArgumentException>(() => cameraInfoHelper.UpdateCameraSource(0, "http://localhost:5051/some/cam", true));

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();
        }
Esempio n. 4
0
        public void DeleteCameraById_WhenRecordWithIdDoesNotExist_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>().AsQueryable();
            var fakeDbSet      = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act & Assert
            Assert.Throws <ArgumentException>(() => cameraInfoHelper.DeleteCameraById(0));

            A.CallTo(() => fakeDlpHelper.GetAllDetectedPlatesByCamera(A <int> .Ignored, A <DateTime?> .Ignored, A <DateTime?> .Ignored))
            .MustHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();
        }
Esempio n. 5
0
        public void GetCameraById_WhenRecordWithIdDoesNotExist_ShouldSucceedAndReturnNull()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>()
            {
                new CameraInfo()
                {
                    Id = 1
                }
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.GetCameraById(0);

            //Assert
            result.ShouldBe(null);
        }
Esempio n. 6
0
        public void GetPlateRecordByPlateNumber_WhenPlateNumberNotExist_ShouldSucceedAndReturnNull()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>()
            {
                new MissingLicensePlate()
                {
                    PlateNumber = "OOO111"
                }
            }.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.GetPlateRecordByPlateNumber("QQQ333");

            //Assert
            result.ShouldBeEmpty();
        }
Esempio n. 7
0
        public void MarkFoundPlate_WhenPlateIdDoesNotExist_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>().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);

            var expectedId = 5;
            var expectedStartSearchDateTime = new DateTime(2018, 08, 17);
            var expectedSearch = LicensePlateFoundStatus.Found;

            //Act & Assert
            Assert.Throws <ArgumentException>(() => missingPlateHelper.MarkFoundPlate(expectedId, expectedStartSearchDateTime, expectedSearch));

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();
        }
Esempio n. 8
0
        public void InsertCamera_WhenTrustedSourceValueNotProvided_IsTrustedSourceShouldBeFalse()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>().AsQueryable();
            var fakeDbSet      = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.InsertCamera("http://localhost:5051/some/cam", 53.124, 27.375);

            //Assert
            Assert.IsFalse(result.IsTrustedSource, "Default IsTrustedSource value was not false");
        }
        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);
        }
Esempio n. 11
0
        public void GetActiveCameras_WhenTrustedSourceIsNull_ShouldReturnActive()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>()
            {
                new CameraInfo()
                {
                    Id = 0, IsActive = true, IsTrustedSource = true
                },
                new CameraInfo()
                {
                    Id = 0, IsActive = true, IsTrustedSource = false
                },
                new CameraInfo()
                {
                    Id = 1, IsActive = false, IsTrustedSource = false
                }
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.GetActiveCameras();

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();

            var expectedResult = fakeIQueryable.Where(c => c.IsActive);

            result.Count().ShouldBe(expectedResult.Count());
            Assert.IsTrue(result.SequenceEqual(expectedResult.ToList()), "Lists are not equal");
        }
Esempio n. 12
0
        public void GetPlateRecordByPlateNumber_WhenPlateNumberExist_ShouldReturnExpected()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>()
            {
                new MissingLicensePlate()
                {
                    PlateNumber = "ZOA555", SearchStartDateTime = new DateTime(2018, 11, 04)
                },
                new MissingLicensePlate()
                {
                    PlateNumber = "DAD123", SearchStartDateTime = new DateTime(2018, 10, 04)
                },
                new MissingLicensePlate()
                {
                    PlateNumber = "FEF144", SearchStartDateTime = new DateTime(2018, 12, 04)
                }
            }.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);

            var expectedPlateNumber = "ZOA555";
            //Act
            var result = missingPlateHelper.GetPlateRecordByPlateNumber(expectedPlateNumber);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();

            var expectedResult = fakeIQueryable.Where(c => c.PlateNumber == expectedPlateNumber);

            result.Count().ShouldBe(expectedResult.Count());
            Assert.IsTrue(result.SequenceEqual(expectedResult.ToList()), "Lists are not equal");
        }
Esempio n. 13
0
        public void UpdateCameraSource_WhenRecordWithIdExists_ShouldUpdateAndReturnExpected()
        {
            //Arrange
            var camInfoObj = new CameraInfo()
            {
                Id = 0, HostUrl = "http://localhost:5051/bad/cam", IsTrustedSource = false
            };
            var fakeIQueryable = new List <CameraInfo>()
            {
                camInfoObj
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var expectedCameraInfo = new CameraInfo()
            {
                Id              = 0,
                HostUrl         = "http://localhost:5051/some/cam",
                IsTrustedSource = true
            };
            var result = cameraInfoHelper.UpdateCameraSource(expectedCameraInfo.Id, expectedCameraInfo.HostUrl,
                                                             expectedCameraInfo.IsActive);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeDbSet.Add(A <CameraInfo> .Ignored))
            .MustNotHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustHaveHappenedOnceExactly();

            result.ShouldBe(expectedCameraInfo);
        }
Esempio n. 14
0
        public void GetActiveCameras_WhenTrustedSourceIsNotNull_ShouldReturnOnlyExpected()
        {
            //Arrange
            var camInfoObj = new CameraInfo()
            {
                Id = 0, IsActive = true, IsTrustedSource = true
            };
            var fakeIQueryable = new List <CameraInfo>()
            {
                camInfoObj,
                new CameraInfo()
                {
                    Id = 1, IsActive = true, IsTrustedSource = false
                },
                new CameraInfo()
                {
                    Id = 2, IsActive = false, IsTrustedSource = true
                },
                new CameraInfo()
                {
                    Id = 3, IsActive = false, IsTrustedSource = false
                }
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.GetActiveCameras(true);

            //Assert
            result.Count().ShouldBe(1);
            result.FirstOrDefault().ShouldBe(camInfoObj);
        }
Esempio n. 15
0
        public void DeleteCameraById_WhenRecordWithIdExistsAndDlpHasNoDependency_ShouldAndReturnExpected()
        {
            //Arrange
            var camInfoObj = new CameraInfo()
            {
                Id = 1
            };
            var fakeIQueryable = new List <CameraInfo>()
            {
                new CameraInfo()
                {
                    Id = 0
                },
                camInfoObj
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.DeleteCameraById(camInfoObj.Id);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeDbSet.Remove(camInfoObj))
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustHaveHappenedOnceExactly();

            result.ShouldBe(camInfoObj);
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        public void GetInactiveCameras_WhenInactiveCameraExists_ShouldReturnExpected()
        {
            //Arrange
            var camInfoObj = new CameraInfo()
            {
                Id = 0, IsActive = false
            };
            var fakeIQueryable = new List <CameraInfo>()
            {
                camInfoObj,
                new CameraInfo()
                {
                    Id = 1, IsActive = true
                }
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var result = cameraInfoHelper.GetInactiveCameras();

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();

            result.Count().ShouldBe(1);
            result.FirstOrDefault().ShouldBe(camInfoObj);
        }
Esempio n. 18
0
        public void UpdateCameraActivity_WhenRecordWithIdExists_ShouldUpdateAndReturnExpected()
        {
            //Arrange
            var camInfoObj = new CameraInfo()
            {
                Id = 0, IsActive = false
            };
            var fakeIQueryable = new List <CameraInfo>()
            {
                camInfoObj
            }.AsQueryable();

            var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var expectedActivity = true;
            var result           = cameraInfoHelper.UpdateCameraActivity(camInfoObj.Id, expectedActivity);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeDbSet.Add(A <CameraInfo> .Ignored))
            .MustNotHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustHaveHappenedOnceExactly();

            result.ShouldBe(camInfoObj);
            camInfoObj.IsActive.ShouldBe(expectedActivity);
        }
Esempio n. 19
0
        public void GetAllPlates_WhenDbIsNotEmpty_ShouldReturnExpected()
        {
            var expectedDate = new DateTime(2018, 05, 15);

            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>()
            {
                new MissingLicensePlate()
                {
                    PlateNumber = "JOR154", SearchStartDateTime = expectedDate
                },
                new MissingLicensePlate()
                {
                    PlateNumber = "JUA222", SearchStartDateTime = expectedDate
                }
            }.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.GetAllPlateRecords();

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();

            result.Count().ShouldBe(fakeIQueryable.Count());
            Assert.IsTrue(result.SequenceEqual(fakeIQueryable.ToList()), "Lists are not equal");
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        public void InsertCamera_WhenAllDataValid_ShouldSucceedAndReturnExpected()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>().AsQueryable();
            var fakeDbSet      = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper    = A.Fake <IDetectedPlateHelper>();
            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act
            var expectedCameraInfo = new CameraInfo()
            {
                HostUrl         = "http://localhost:5051/some/cam",
                Latitude        = 53.124,
                Longitude       = 27.375,
                IsTrustedSource = true
            };

            var result = cameraInfoHelper.InsertCamera(expectedCameraInfo.HostUrl, expectedCameraInfo.Latitude,
                                                       expectedCameraInfo.Longitude, expectedCameraInfo.IsTrustedSource);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeDbSet.Add(result))
            .MustHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustHaveHappenedOnceExactly();

            result.ShouldBe(expectedCameraInfo);
        }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        public void UpdatePlateRecord_WhenRecordWithIdDoesNotExist_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>().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 & Assert
            Assert.Throws <ArgumentException>(() => missingPlateHelper.UpdatePlateRecord(0, "JBA514", DateTime.Today));
        }
Esempio n. 24
0
        public void DeleteCameraById_WhenDLPDependsOnCamera_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <CameraInfo>().AsQueryable();
            var fakeDbSet      = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable);

            var fakeHucaresContext = A.Fake <HucaresContext>();

            A.CallTo(() => fakeHucaresContext.CameraInfo)
            .Returns(fakeDbSet);

            var fakeDbContextFactory = A.Fake <IDbContextFactory>();

            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .Returns(fakeHucaresContext);

            var fakeDlpHelper = A.Fake <IDetectedPlateHelper>();

            var expectedId = 0;

            A.CallTo(() => fakeDlpHelper.GetAllDetectedPlatesByCamera(expectedId, A <DateTime?> .Ignored, A <DateTime?> .Ignored))
            .Returns(new List <DetectedLicensePlate>()
            {
                new DetectedLicensePlate()
            });

            var cameraInfoHelper = new CameraInfoHelper(fakeDbContextFactory, fakeDlpHelper);

            //Act & Assert
            Assert.Throws <AccessViolationException>(() => cameraInfoHelper.DeleteCameraById(expectedId));

            A.CallTo(() => fakeDlpHelper.GetAllDetectedPlatesByCamera(A <int> .Ignored, A <DateTime?> .Ignored, A <DateTime?> .Ignored))
            .MustHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();
        }
Esempio n. 25
0
        public void DeletePlateByNumber_WhenPlateWithNumberDoesNotExist_ShouldThrow()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>().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 & Assert
            Assert.Throws <ArgumentException>(() => missingPlateHelper.DeletePlateByNumber("TRO555"));

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustNotHaveHappened();
        }
Esempio n. 26
0
        public void InsertMissingPlate_WhenPlateNumberIsValid_ShouldSucceedAndReturnExpected()
        {
            //Arrange
            var fakeIQueryable = new List <MissingLicensePlate>().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 missingLicensePlateHelper = new MissingPlateHelper(fakeDbContextFactory);

            //Act
            var expectedPlate = "JBA555";
            var expectedDate  = new DateTime(2017, 08, 15);
            var result        = missingLicensePlateHelper.InsertPlateRecord(expectedPlate, expectedDate);

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext())
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => fakeDbSet.Add(result))
            .MustHaveHappened();

            A.CallTo(() => fakeHucaresContext.SaveChanges())
            .MustHaveHappenedOnceExactly();

            result.PlateNumber.ShouldBe(expectedPlate);
            result.SearchStartDateTime.ShouldBe(expectedDate);
        }
        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);
        }