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 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_WithPlateNumberWithDates_ShouldReturnExpected()
        {
            //Arrange
            var expectedDetectedPlate = new DetectedLicensePlate()
            {
                Id    = 1, PlateNumber = "ABC002", DetectedDateTime = new DateTime(2018, 10, 10),
                CamId = 2, ImgUrl = "http://localhost:6969/images", Confidence = 0.80
            };

            var fakeDetectedPlateList = new List <DetectedLicensePlate>()
            {
                expectedDetectedPlate,
                new DetectedLicensePlate()
                {
                    Id    = 0, PlateNumber = "ABC002", DetectedDateTime = new DateTime(2018, 09, 30),
                    CamId = 1, ImgUrl = "http://localhost:6969/images", Confidence = 0.75
                },
                new DetectedLicensePlate()
                {
                    Id    = 2, PlateNumber = "ABC002", DetectedDateTime = new DateTime(2018, 09, 20),
                    CamId = 2, ImgUrl = "http://localhost:6969/images", Confidence = 0.80
                }
            };

            var fakeMissingPlateList = new List <MissingLicensePlate>()
            {
                new MissingLicensePlate()
                {
                    Id                  = 0,
                    PlateNumber         = expectedDetectedPlate.PlateNumber,
                    SearchStartDateTime = new DateTime(2018, 09, 25),
                    SearchEndDateTime   = null
                }
            };

            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,
                                                                                     startDateTime: new DateTime(2018, 10, 05));

            //Assert
            A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()).MustHaveHappened();
            result.Count().ShouldBe(1);
            result.FirstOrDefault().ShouldBe(expectedDetectedPlate);
        }
예제 #4
0
 public IHttpActionResult GetAllDetectedPlatesByPlateNumber(string plateNumber, DateTime?startDateTime = null,
                                                            DateTime?endDateTime = null)
 {
     return(Json(DetectedPlateHelper.GetAllActiveDetectedPlatesByPlateNumber(plateNumber, startDateTime, endDateTime)));
 }