public async Task FindOne()
        {
            var apiKeyService = new Mock <IApiKeyService>();
            var daprClient    = new Mock <DaprClient>();

            apiKeyService.Setup(x => x.FindOneAsync(It.IsAny <string>())).Returns(
                Task.FromResult((ApiKey?)new ApiKey()
            {
                Id = "Id1"
            })
                );

            var apiKeyController = new ApiKeyController(
                apiKeyService.Object,
                daprClient.Object
                );

            var authorizeAttributes = apiKeyController.GetType().GetMethod(nameof(ApiKeyController.FindOne))?.GetCustomAttributes(typeof(TenantAuthorizeAttribute), true);

            var result = await apiKeyController.FindOne("Id1");

            apiKeyService.Verify(x => x.FindOneAsync(It.IsAny <string>()), Times.Once);

            var objectResult = Assert.IsType <OkObjectResult>(result.Result);
            var apiKey       = Assert.IsType <ApiKey>(objectResult.Value);

            Assert.NotNull(apiKey);
            Assert.Equal("Id1", apiKey.Id);

            Assert.NotNull(authorizeAttributes);
            Assert.Single(authorizeAttributes);
            var authorizeAttribute = Assert.IsType <TenantAuthorizeAttribute>(authorizeAttributes ![0]);
 private void Window_Initialized(object sender, EventArgs e)
 {
     _keysWindow = new APIKeysWindow();
     ApiKeyController      inputHandler          = new ApiKeyController(_keysWindow);
     YandexAPIInteractor   interactor            = new YandexAPIInteractor();
     TranslationController translationController = new TranslationController(this, interactor, inputHandler);
 }
Exemplo n.º 3
0
        public async void BulkInsert_No_Errors()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();

            var mockResponse = new CreateResponse <ApiApiKeyResponseModel>(new FluentValidation.Results.ValidationResult());

            mockResponse.SetRecord(new ApiApiKeyResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiApiKeyRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiApiKeyResponseModel> >(mockResponse));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiApiKeyRequestModel>();

            records.Add(new ApiApiKeyRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var result = (response as OkObjectResult).Value as List <ApiApiKeyResponseModel>;

            result.Should().NotBeEmpty();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiApiKeyRequestModel>()));
        }
Exemplo n.º 4
0
        public async void Patch_No_Errors()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiApiKeyResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(true);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <string>(), It.IsAny <ApiApiKeyRequestModel>()))
            .Callback <string, ApiApiKeyRequestModel>(
                (id, model) => model.ApiKeyHashed.Should().Be("A")
                )
            .Returns(Task.FromResult <UpdateResponse <ApiApiKeyResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult <ApiApiKeyResponseModel>(new ApiApiKeyResponseModel()));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiApiKeyModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiApiKeyRequestModel>();

            patch.Replace(x => x.ApiKeyHashed, "A");

            IActionResult response = await controller.Patch(default(string), patch);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            mock.ServiceMock.Verify(x => x.Update(It.IsAny <string>(), It.IsAny <ApiApiKeyRequestModel>()));
        }
Exemplo n.º 5
0
        public async Task ApiKeyListContainsKeysInRepo()
        {
            var controller = new ApiKeyController();
            var response   = await controller.List(new Request(HttpMethod.Get, "/apikeys", new Dictionary <string, string>(), CreateRepo().Object, null));

            var viewResponse = (ViewResponse)response;

            Assert.AreEqual("ApiKeyList", viewResponse.ViewName);
            Assert.AreEqual("api_secret_1", viewResponse.Model.ApiKeys[0].Secret);
        }
Exemplo n.º 6
0
 public TranslationController(ITranslationView translationView, IAPIResponceNotifier responceNotifier,
                              ApiKeyController keyController)
 {
     _translationView = translationView;
     _translationView.SetInputHandler(this);
     _apiResponceNotifier = responceNotifier;
     _keyController       = keyController;
     _apiResponceNotifier.AddAPIResponceObserver(this);
     GetAvailableLanguages();
 }
Exemplo n.º 7
0
        public async Task ApiKeyListAddsKeysToRepo()
        {
            var controller     = new ApiKeyController();
            var repo           = CreateRepo();
            var postData       = @"{ id: 1001, secret: ""a secret"" }";
            var postDataStream = new MemoryStream(Encoding.UTF8.GetBytes(postData));
            var response       = await controller.Add(new Request(HttpMethod.Post, "/apikeys", new Dictionary <string, string>(), repo.Object, postDataStream));

            repo.Verify(x => x.AddApiKey(It.Is <ApiKey>(k => k.Id == 1001 && k.Secret == "a secret")));
            Assert.AreEqual("/apikeys", ((SeeOtherResponse)response).Location);
        }
 public Task Update()
 {
     _uiContext.Send(async x =>
     {
         Keys.Clear();
         foreach (var key in await ApiKeyController.LoadKeysAsync())
         {
             Keys.Add(key);
         }
     }, null);
     return(Task.CompletedTask);
 }
Exemplo n.º 9
0
        public async Task Controller_DELETE_APIKey()
        {
            var controller = new ApiKeyController(User, Manager);

            var str = await PostTestAPIKey();

            Assert.AreEqual(1, Context.ApiKeys.Count());
            await controller.DeleteAsync(str);

            Assert.AreEqual(0, Context.ApiKeys.Count());
            User.SetPermissions(new string[] { });
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.DeleteAsync(null));
        }
Exemplo n.º 10
0
        public async void Get_Not_Exists()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult <ApiApiKeyResponseModel>(null));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Get(default(string));

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <string>()));
        }
Exemplo n.º 11
0
        public async Task Controller_GET_APIKey()
        {
            var controller = new ApiKeyController(User, Manager);

            await PostTestAPIKey();

            var res = controller.Get() as JsonResult;
            var obj = res.Value as IEnumerable <Models.Output.Admin.ApiKey>;

            Assert.AreEqual(1, obj.Count());
            Assert.AreEqual("TEST_API_KEY", obj.First().Description);
            Assert.AreEqual(DateTime.MaxValue, obj.First().ExpirationDate);
            Assert.AreEqual(AuthorizeApiKey.Authentication | AuthorizeApiKey.Registration | AuthorizeApiKey.Standard, obj.First().Flags);
            Assert.AreEqual(2, obj.First().UseNum);
            User.SetPermissions(new string[] { });
            Assert.Throws <Shared.Exceptions.InsuficientPermission>(() => controller.Get());
        }
Exemplo n.º 12
0
        public async void Delete_Errors()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Delete(It.IsAny <string>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Delete(default(string));

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Delete(It.IsAny <string>()));
        }
Exemplo n.º 13
0
        public async Task Controller_POST_APIKey()
        {
            var controller = new ApiKeyController(User, Manager);
            var res        = await controller.PostAsync(new ApiKeyCreate()
            {
                Description    = "TestKey",
                ExpirationDate = DateTime.MaxValue,
                Flags          = AuthorizeApiKey.Standard,
                UseNum         = -1
            }) as JsonResult;

            var obj = res.Value as Models.Output.Admin.ApiKey;

            Assert.AreEqual("TestKey", obj.Description);
            Assert.AreEqual(-1, obj.UseNum);
            Assert.AreEqual(DateTime.MaxValue, obj.ExpirationDate);
            User.SetPermissions(new string[] { });
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.PostAsync(new ApiKeyCreate()));
        }
Exemplo n.º 14
0
        public async void All_Not_Exists()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();

            mock.ServiceMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <ApiApiKeyResponseModel> >(new List <ApiApiKeyResponseModel>()));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.All(1000, 0);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var items = (response as OkObjectResult).Value as List <ApiApiKeyResponseModel>;

            items.Should().BeEmpty();
            mock.ServiceMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
Exemplo n.º 15
0
        public async void Update_NotFound()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiApiKeyResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <string>(), It.IsAny <ApiApiKeyRequestModel>())).Returns(Task.FromResult <UpdateResponse <ApiApiKeyResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult <ApiApiKeyResponseModel>(null));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiApiKeyModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Update(default(string), new ApiApiKeyRequestModel());

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <string>()));
        }
Exemplo n.º 16
0
        public async Task Controller_PATCH_APIKey()
        {
            var controller = new ApiKeyController(User, Manager);

            var str = await PostTestAPIKey();

            var res = await controller.PatchAsync(str, new ApiKeyUpdate()
            {
                Description = "TestKey",
                UseNum      = 0
            }) as JsonResult;

            var obj = res.Value as Models.Output.Admin.ApiKey;

            Assert.AreEqual("TestKey", obj.Description);
            Assert.AreEqual(AuthorizeApiKey.Authentication | AuthorizeApiKey.Registration | AuthorizeApiKey.Standard, obj.Flags);
            Assert.AreEqual(0, obj.UseNum);
            User.SetPermissions(new string[] { });
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.PatchAsync(str, null));
        }
Exemplo n.º 17
0
        public async void Create_Errors()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();

            var mockResponse = new Mock <CreateResponse <ApiApiKeyResponseModel> >(new FluentValidation.Results.ValidationResult());
            var mockRecord   = new ApiApiKeyResponseModel();

            mockResponse.SetupGet(x => x.Success).Returns(false);

            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiApiKeyRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiApiKeyResponseModel> >(mockResponse.Object));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Create(new ApiApiKeyRequestModel());

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiApiKeyRequestModel>()));
        }
Exemplo n.º 18
0
        public async void Patch_Record_Not_Found()
        {
            ApiKeyControllerMockFacade mock = new ApiKeyControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult <ApiApiKeyResponseModel>(null));
            ApiKeyController controller = new ApiKeyController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiApiKeyRequestModel>();

            patch.Replace(x => x.ApiKeyHashed, "A");

            IActionResult response = await controller.Patch(default(string), patch);

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <string>()));
        }
Exemplo n.º 19
0
        public static Action <IAppBuilder> Configuration(Func <IRepository> createRepository)
        {
            return(app => {
                app.UseErrorPage();
                app.Use(new Func <AppFunc, AppFunc>(next => (async env =>
                {
                    try
                    {
                        await next.Invoke(env);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                })));
                app.Use(new Func <AppFunc, AppFunc>(next => (async env =>
                {
                    using (var repository = createRepository())
                    {
                        env["evefifo.Repository"] = repository;
                        await next.Invoke(env);
                    }
                })));

                var characterController = new CharacterController();
                var apiKeyController = new ApiKeyController();
                app.UseStaticFiles();
                app.UseRoutes(
                    new Route("/", characterController.List),
                    new Route("/characters/{id}", characterController.Show),
                    new Route("/apikeys", apiKeyController.List),
                    new Route("/apikeys", apiKeyController.Add, HttpMethod.Post)
                    );
            });
        }
 private void SaveKeys()
 {
     ApiKeyController.SaveKeys(Keys.ToList());
     Update();
 }