Ejemplo n.º 1
0
        public async Task <ActionResult <MainResponse> > TestWord(UserSecretKeyRequest secretKeyRequest)
        {
            User user = HttpContext.GetUser();

            if (user == null)
            {
                return(Unauthorized());
            }

            KeySession keySession = await _context.KeySessions.FirstOrDefaultAsync(p => p.VerificationData == secretKeyRequest.IdentificationWord);

            if (keySession != null)
            {
                user.KeySession = keySession;
                user.UserState  = Enums.UserStates.Online;
                _context.Update(user);
                await _context.SaveChangesAsync();
            }

            UserSecretKeyResponse secretKeyResponse = new UserSecretKeyResponse()
            {
                UnknownKey = keySession == null
            };

            if (keySession != null)
            {
                secretKeyResponse.PublicKey           = keySession.RSAKeyPair.PublicKey;
                secretKeyResponse.EncryptedPrivateKey = keySession.RSAKeyPair.EncryptedPrivateKey;
                secretKeyResponse.KeyId = keySession.RSAKeyPair.Id;
            }

            return(MainResponse.GetSuccess(secretKeyResponse));
        }
Ejemplo n.º 2
0
        public async Task Translate_LessReturnDataSecond()
        {
            using (var session = new KeySession())
            {
                var fixture = new TranslateFixture();
                fixture.SetupTranslateLessResultSecond();
                var respository = new TranslatorRepository(fixture.TranslatorContext);
                // In the setup callback, I write Assert.
                var result = await respository.TranslateAsync(fixture.InputText, fixture.InputLanguage);

                Assert.Equal("", result);
            }
        }
Ejemplo n.º 3
0
        public async Task Translate_Normal()
        {
            using (var session = new KeySession())
            {
                var fixture     = new TranslateFixture();
                var ExpectedURL =
                    $"https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to={fixture.InputLanguage}";
                fixture.SetupTranslate(session.InputKey, ExpectedURL);
                var respository = new TranslatorRepository(fixture.TranslatorContext);
                // In the setup callback, I write Assert.
                var result = await respository.TranslateAsync(fixture.InputText, fixture.InputLanguage);

                Assert.Equal(fixture.ExpectedTranslatedText, result);
            }
        }
Ejemplo n.º 4
0
        public async Task <ActionResult <MainResponse> > CreateTestWord(CreateNewSessionRequest request)
        {
            User user = HttpContext.GetUser();

            if (user == null)
            {
                return(StatusCode(401));
            }

            KeySession keySession = _context.KeySessions.FirstOrDefault(p => p.VerificationData == request.IdentificationWord);

            if (keySession == null)
            {
                RSAKeyPair keyPair = new RSAKeyPair()
                {
                    EncryptedPrivateKey = request.EncryptedPrivateKey,
                    LastKeyPair         = null,
                    LastPublicKeySign   = null,
                    PublicKey           = request.PublicKey
                };

                _context.RSAKeyPairs.Add(keyPair);

                keySession = new KeySession()
                {
                    CreationDate     = DateTime.Now,
                    VerificationData = request.IdentificationWord,
                    RSAKeyPair       = keyPair
                };

                user.KeySession = keySession;
                user.UserState  = Enums.UserStates.Online;
                user.AvailableKeys--;
                _context.Users.Update(user);
                await _context.KeySessions.AddAsync(keySession);

                await _context.SaveChangesAsync();
            }

            UserSecretKeyResponse secretKeyResponse = new UserSecretKeyResponse()
            {
                UnknownKey = false
            };

            return(MainResponse.GetSuccess(secretKeyResponse));
        }
Ejemplo n.º 5
0
        public async Task Translate_Exception()
        {
            using (var session = new KeySession())
            {
                var fixture     = new TranslateFixture();
                var ExpectedURL =
                    $"https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to={fixture.InputLanguage}";
                fixture.SetupTranslateFailure(ExpectedURL);
                var respository = new TranslatorRepository(fixture.TranslatorContext);
                // In the setup callback, I write Assert.
                var ex = await Assert.ThrowsAsync <RestAPICallException>(async() =>
                                                                         await respository.TranslateAsync(fixture.InputText, fixture.InputLanguage)
                                                                         );

                Assert.Equal("InternalServerError", ex.StatusCode);
                Assert.Equal("Internal Server Error", ex.Message);
                Assert.Equal(ExpectedURL, ex.RequestMessage.RequestUri.ToString());
            }
        }