예제 #1
0
        private async Task InitializeQueue()
        {
            var user = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };
            await app.UserManager.CreateAsync(user, "UserTest@123");

            await app.SetUser(user);

            var testSession = new Session(user.Id, DateTime.UtcNow, DateTime.UtcNow, SessionStatus.FINISHED);

            testSession.SessionID = 1;
            var testPhoto = new Photo(testSession.SessionID, new byte[] { 0x20, 0x20, 0x20 }, DateTime.UtcNow);

            testPhoto.PhotoID = 2;

            photoRepository = repository.Of <IPhotoRepository>()
                              .Where(pr => pr.GetPhotoById(It.IsAny <int>()) == testPhoto)
                              .First();

            recognitionResultsRepository = new RecognitionResultsMock();

            for (int i = 0; i < 5; i++)
            {
                RecognitionTask recognitionTask = new RecognitionTask("model1", 2);
                queue.Enqueue(recognitionTask);
            }
        }
        private async Task TestGetPhoto()
        {
            var user = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };
            await app.UserManager.CreateAsync(user, "UserTest@123");

            await app.SetUser(user);

            ISessionRepository            sessionRepository;
            IPhotoRepository              photoRepository;
            IRecognitionResultsRepository recognitionResultsRepository;

            InstantiateRepositories(user, out sessionRepository, out photoRepository, out recognitionResultsRepository);

            PhotoController controller = CreateController(sessionRepository, photoRepository);

            var result = (await controller.GetPhoto(app.UserManager, photoRepository,
                                                    sessionRepository, recognitionResultsRepository) as OkObjectResult).Value;

            var resultPhoto        = result.GetType().GetProperty("photo").GetValue(result) as string;
            var recognitionResults = getRecognitionResultsFromJsonResults(result, photoId);

            Assert.Equal(resultPhoto, Convert.ToBase64String(image));
            Assert.Equal(testResults, recognitionResults);
        }
        public async void GetRecognitionResultsTest(bool recognitionResultsArePresent)
        {
            var user = new ApplicationUser
            {
                UserName = recognitionResultsArePresent ? "UserTest" : "UserTest2",
                Email    = "*****@*****.**"
            };
            await app.UserManager.CreateAsync(user, "UserTest@123");

            await app.SetUser(user);

            DateTime timeStamp   = new DateTime();
            var      image       = new byte[] { 0x20, 0x20, 0x20 };
            var      sessionId   = 1;
            var      photoId     = 2;
            var      userId      = user.Id;
            Points   coords      = new Points(new Point(0, 1), new Point(2, 3));
            bool     testIsValid = true;

            RecognitionResults testRecognitionResults
                = recognitionResultsArePresent ? new RecognitionResults(testIsValid, coords, photoId) : null;

            Session testSession = new Session(userId, timeStamp, timeStamp, SessionStatus.ACTIVE);

            testSession.SessionID = sessionId;

            Photo testPhoto = new Photo(testSession.SessionID, image, timeStamp);

            testPhoto.PhotoID = photoId;

            var repository = new MockRepository(MockBehavior.Default);

            IRecognitionResultsRepository recognitionResultsRepository = repository.Of <IRecognitionResultsRepository>()
                                                                         .Where(rr => rr.GetRecognitionResultsByPhotoId(It.IsAny <int>()) == testRecognitionResults)
                                                                         .First();

            PhotoController photoController = CreateController(testSession, testPhoto);

            var result = (await photoController.GetRecognitionResults(
                              app.UserManager, recognitionResultsRepository) as OkObjectResult).Value;

            RecognitionResults requestRecognitionResults = getRecognitionResultsFromJsonResult(result, photoId);

            if (recognitionResultsArePresent)
            {
                Assert.Equal(testRecognitionResults, requestRecognitionResults);
            }
            else
            {
                Assert.Null(requestRecognitionResults);
            }
        }
예제 #4
0
        public async Task TestGetUserName()
        {
            var user = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };
            await app.UserManager.CreateAsync(user, "UserTest@123");

            await app.SetUser(user);

            UserController controller = CreateController();

            var result = (await controller.GetUserName() as OkObjectResult).Value;
            // result has anonymous type so we can only use reflection to get value
            string name = result.GetType().GetProperty("userName").GetValue(result) as string;

            Assert.Equal(user.UserName, name);
        }
예제 #5
0
        public async void GetSessionId()
        {
            //Arrange
            var user = new ApplicationUser {
                UserName = "******", Email = "*****@*****.**"
            };
            await app.UserManager.CreateAsync(user, "UserTest@123");

            await app.SetUser(user);

            var testSession = new Session(user.Id, DateTime.UtcNow, DateTime.UtcNow, SessionStatus.FINISHED);

            testSession.SessionID = 1;
            var testPhoto = new Photo(testSession.SessionID, new byte[] { 0x20, 0x20, 0x20 }, DateTime.UtcNow);

            testPhoto.PhotoID = 2;

            IImageDecryptor decryptor = Mock.Of <IImageDecryptor>(
                id => id.Decrypt(It.IsAny <byte[]>()) == testPhoto.Image);

            RecognitionTaskQueue taskQueue = new RecognitionTaskQueue(new LoggerFactory());

            //Act
            PhotoController controller = CreateController(testSession, testPhoto);

            var result = (controller.UploadPhotoAndStartSession(
                              new PhotoRequest("MQ==", DateTime.UtcNow),
                              app.UserManager,
                              new SessionTracker(new LoggerFactory(), sessionRepository, conf, new SessionValidator(new LoggerFactory())),
                              decryptor,
                              taskQueue,
                              conf,
                              null)
                          as OkObjectResult).Value;

            var resultValue = result.GetType().GetProperty("SessionId").GetValue(result) as string;

            //Assert
            Assert.Equal <int>(0, Convert.ToInt32(resultValue));
        }