Esempio n. 1
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. 2
0
        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));
        }
Esempio n. 3
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");
        }