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); }
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>())); }
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>())); }
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); }
public TranslationController(ITranslationView translationView, IAPIResponceNotifier responceNotifier, ApiKeyController keyController) { _translationView = translationView; _translationView.SetInputHandler(this); _apiResponceNotifier = responceNotifier; _keyController = keyController; _apiResponceNotifier.AddAPIResponceObserver(this); GetAvailableLanguages(); }
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); }
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)); }
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>())); }
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()); }
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>())); }
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())); }
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>())); }
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>())); }
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)); }
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>())); }
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>())); }
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(); }