public async Task Put_ValidRepositorySettings_ShouldUpdate() { var org = "ttd"; var sourceRepository = "xyz-datamodels"; var developer = "testUser"; var targetRepository = $"{Guid.NewGuid()}-datamodels"; await TestDataHelper.CopyRepositoryForTest(org, sourceRepository, developer, targetRepository); var httpClient = GetTestClient(); string requestUrl = $"/designer/api/v1/{org}/{targetRepository}/repositorysettings"; var requestBody = @"{""repoType"": ""Datamodels"", ""datamodelling.preference"": ""JsonSchema""}"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Put, requestUrl) { Content = new StringContent(requestBody, Encoding.UTF8, "application/json") }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(httpClient, httpRequestMessage); try { HttpResponseMessage response = await httpClient.SendAsync(httpRequestMessage); var altinnStudioSettings = await response.Content.ReadAsAsync <AltinnStudioSettings>(); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(DatamodellingPreference.JsonSchema, altinnStudioSettings.DatamodellingPreference); Assert.Equal(AltinnRepositoryType.Datamodels, altinnStudioSettings.RepoType); } finally { TestDataHelper.DeleteAppRepository(org, targetRepository, developer); } }
public async Task Contents_ContentsReturned_OK() { // Arrange string uri = $"{_versionPrefix}/repositories/ttd/apps-test/contents"; Mock <IRepository> repositoryService = new Mock <IRepository>(); repositoryService .Setup(r => r.GetContents(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new List <FileSystemObject> { new FileSystemObject { Name = "appsettings.Development.json", Encoding = "Unicode (UTF-8)", Path = "App/appsettings.Development.json", Type = "File" } }); HttpClient client = GetTestClient(repositoryService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri) { }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert Assert.Equal(HttpStatusCode.OK, res.StatusCode); }
public async Task GetDeployments_NoLaggingDeployments_PipelineServiceNotCalled() { // Arrange string uri = $"{_versionPrefix}/ttd/issue-6094/deployments?sortBy=created&sortDirection=Descending"; List <DeploymentEntity> completedDeployments = GetDeploymentsList("completedDeployments.json"); Mock <IPipelineService> pipelineService = new Mock <IPipelineService>(); Mock <IDeploymentService> deploymentService = new Mock <IDeploymentService>(); deploymentService .Setup(rs => rs.GetAsync(It.IsAny <DocumentQueryModel>())) .ReturnsAsync(new SearchResults <DeploymentEntity> { Results = completedDeployments }); HttpClient client = GetTestClient(deploymentService.Object, pipelineService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); string responseString = await res.Content.ReadAsStringAsync(); SearchResults <DeploymentEntity> searchResult = JsonSerializer.Deserialize <SearchResults <DeploymentEntity> >(responseString, _options); IEnumerable <DeploymentEntity> actual = searchResult.Results; // Assert Assert.Equal(HttpStatusCode.OK, res.StatusCode); Assert.Equal(8, actual.Count()); Assert.DoesNotContain(actual, r => r.Build.Status == Altinn.Studio.Designer.TypedHttpClients.AzureDevOps.Enums.BuildStatus.InProgress); pipelineService.Verify(p => p.UpdateDeploymentStatus(It.IsAny <string>(), It.IsAny <string>()), Times.Never); deploymentService.Verify(r => r.GetAsync(It.IsAny <DocumentQueryModel>()), Times.Once); }
public async Task PutDatamodel_ValidInput_ShouldUpdateFile(string modelPath) { var org = "ttd"; var sourceRepository = "hvem-er-hvem"; var developer = "testUser"; var targetRepository = Guid.NewGuid().ToString(); await TestDataHelper.CopyRepositoryForTest(org, sourceRepository, developer, targetRepository); var client = GetTestClient(); var url = $"{_versionPrefix}/{org}/{targetRepository}/Datamodels/?modelPath={modelPath}"; var minimumValidJsonSchema = @"{""properties"":{""root"":{""$ref"":""#/definitions/rootType""}},""definitions"":{""rootType"":{""properties"":{""keyword"":{""type"":""string""}}}}}"; string requestBody = minimumValidJsonSchema; var httpRequestMessage = new HttpRequestMessage(HttpMethod.Put, url) { Content = new StringContent(requestBody, Encoding.UTF8, "application/json") }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); try { var response = await client.SendAsync(httpRequestMessage); Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); } finally { TestDataHelper.DeleteAppRepository(org, targetRepository, developer); } }
public async Task CopyApp_RepoHasCreatedStatus_DeleteRepositoryIsNotCalled() { // Arrange string uri = $"/designer/api/v1/repos/copyapp?org=ttd&sourceRepository=apps-test&targetRepository=cloned-app"; Mock <IRepository> repositoryService = new Mock <IRepository>(); repositoryService .Setup(r => r.CopyRepository(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(new Repository { RepositoryCreatedStatus = HttpStatusCode.Created, CloneUrl = "https://www.vg.no" }); HttpClient client = GetTestClient(repositoryService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert repositoryService.VerifyAll(); Assert.Equal(HttpStatusCode.Created, res.StatusCode); }
public async Task CopyApp_ExceptionIsThrownByService_InternalServerError() { // Arrange string uri = $"/designer/api/v1/repos/copyapp?org=ttd&sourceRepository=apps-test&targetRepository=cloned-app"; Mock <IRepository> repositoryService = new Mock <IRepository>(); repositoryService .Setup(r => r.CopyRepository(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Throws(new IOException()); repositoryService .Setup(r => r.DeleteRepository(It.IsAny <string>(), It.IsAny <string>())); HttpClient client = GetTestClient(repositoryService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert repositoryService.VerifyAll(); Assert.Equal(HttpStatusCode.InternalServerError, res.StatusCode); }
public async Task CreateApp_ValidRepoName_Created() { // Arrange string uri = $"/designer/api/v1/repos/CreateApp?org=ttd&repository=test"; Mock <IRepository> repositoryService = new Mock <IRepository>(); repositoryService .Setup(r => r.CreateService(It.IsAny <string>(), It.IsAny <ServiceConfiguration>())) .ReturnsAsync(new Repository() { RepositoryCreatedStatus = HttpStatusCode.Created, CloneUrl = "https://some.site/this/is/not/relevant" }); HttpClient client = GetTestClient(repositoryService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert Assert.Equal(HttpStatusCode.Created, res.StatusCode); }
public static void ProcessRequest() { try { // 获取在线用户记录器 OnlineUserRecorder recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; if (recorder == null) { Register(); recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; } OnlineUser onlineUser = new OnlineUser(); //注意session的名称是和登录保存的名称一致 Data.Entities.User user = (Data.Entities.User)HttpContext.Current.Session[SessionConst.LoginUser]; //用于限制用户只能在一处登录 onlineUser.AuthenticationId = AuthenticationUtil.GetLoginUserGuid(); onlineUser.UniqueID = user.UserId; //父级UserName onlineUser.ParentUserId = user.ParentUserId; //祖父级UserName //if (user.ParentUserId.HasValue) //{ // onlineUser.GrandUserId = new UserService().GetParentUserId(user.ParentUserId.Value); //} // 用户名称 onlineUser.UserName = user.UserName; // 用户头像 onlineUser.Avatar = user.Avatar; // 用户角色 //onlineUser.UserDegree = user.UserRoles.First().RoleId; // SessionID onlineUser.SessionID = HttpContext.Current.Session.SessionID; // IP 地址 //onlineUser.ClientIP = IPUtil.GetHostAddress(); // 登录时间 if (!onlineUser.LoginTime.HasValue) { onlineUser.LoginTime = DateTime.Now; } // 最后活动时间 onlineUser.ActiveTime = DateTime.Now; // 最后请求地址 onlineUser.RequestURL = HttpContext.Current.Request.RawUrl; // 保存用户信息 recorder.Persist(onlineUser); } catch (Exception ex) { _logger.Info(ex); } }
public async Task PostDatamodel_FromFormPost_ShouldReturnCreatedFromTemplate(string relativeDirectory, bool altinn2Compatible, string sourceRepository) { // Arrange var org = "ttd"; var developer = "testUser"; var targetRepository = Guid.NewGuid().ToString(); await TestDataHelper.CopyRepositoryForTest(org, sourceRepository, developer, targetRepository); var client = GetTestClient(); var url = $"{_versionPrefix}/{org}/{targetRepository}/Datamodels/Post"; var createViewModel = new CreateModelViewModel() { ModelName = "test", RelativeDirectory = relativeDirectory, Altinn2Compatible = altinn2Compatible }; var postRequestMessage = new HttpRequestMessage(HttpMethod.Post, url) { Content = JsonContent.Create(createViewModel, null, new System.Text.Json.JsonSerializerOptions() { PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase }) }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, postRequestMessage); // Act / Assert try { var postResponse = await client.SendAsync(postRequestMessage); Assert.Equal(HttpStatusCode.Created, postResponse.StatusCode); Assert.Equal("application/json", postResponse.Content.Headers.ContentType.MediaType); var postContent = await postResponse.Content.ReadAsStringAsync(); Json.Schema.JsonSchema postJsonSchema = Json.Schema.JsonSchema.FromText(postContent); Assert.NotNull(postJsonSchema); // Try to read back the created schema to verify it's stored // at the location provided in the post response var location = postResponse.Headers.Location; var getRequestMessage = new HttpRequestMessage(HttpMethod.Get, location); var getResponse = await client.SendAsync(getRequestMessage); var getContent = await getResponse.Content.ReadAsStringAsync(); var getJsonSchema = Json.Schema.JsonSchema.FromText(getContent); Assert.NotNull(getJsonSchema); Assert.Equal(postContent, getContent); } finally { TestDataHelper.DeleteAppRepository(org, targetRepository, developer); } }
public async Task DeleteUserStarredRepositories_ShouldReturnNoContent() { var client = GetTestClient(); string requestUrl = "/designer/api/v1/user/starred/tdd/reponametounstar"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Delete, requestUrl); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); response.StatusCode.Should().Be(HttpStatusCode.NoContent); }
public static void Clear() { if (LoginUser != null) { var guid = AuthenticationUtil.GetLoginUserGuid(); var user = PKBag.OnlineUserRecorder.GetUserByAuthenticationId(guid); PKBag.OnlineUserRecorder.Delete(user); } System.Web.HttpContext.Current.Session.Remove(SessionConst.LoginUser); System.Web.HttpContext.Current.Session.Remove(SessionConst.Menus); }
public async Task Delete_Datamodel_Ok() { HttpClient client = GetTestClient(); string dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/DeleteDatamodel?modelName=41111"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Delete, dataPathWithData); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async Task GetCurrentUser_ShouldReturnOk() { var client = GetTestClient(); string requestUrl = "/designer/api/v1/user/current"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, requestUrl); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); response.StatusCode.Should().Be(System.Net.HttpStatusCode.OK); response.Headers.First(h => h.Key == "Set-Cookie").Value.Should().Satisfy(e => e.Contains("XSRF-TOKEN")); }
public async Task Get_RepositoryDoesNotExists_ShouldReturnNotFound() { var org = "ttd"; var targetRepository = $"thisDoesNotExist-datamodels"; var httpClient = GetTestClient(); string requestUrl = $"/designer/api/v1/{org}/{targetRepository}/repositorysettings"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, requestUrl); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(httpClient, httpRequestMessage); HttpResponseMessage response = await httpClient.SendAsync(httpRequestMessage); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task GetDatamodel_ValidPath_ShouldReturnContent(string modelPath) { var org = "ttd"; var repository = "hvem-er-hvem"; var client = GetTestClient(); var url = $"{_versionPrefix}/{org}/{repository}/datamodels/{modelPath}"; var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); var response = await client.SendAsync(httpRequestMessage); Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async Task Get_Put_Updatemodel3_Ok() { string unitTestFolder = Path.GetDirectoryName(new Uri(typeof(DatamodelsControllerTests).Assembly.Location).LocalPath); unitTestFolder = Path.Combine(unitTestFolder, @"..\..\..\_TestData\"); if (File.Exists(unitTestFolder + "Repositories/testuser/ttd/ttd-datamodels/App/models/0678.schema.json")) { File.Delete(unitTestFolder + "Repositories/testuser/ttd/ttd-datamodels/App/models/0678.schema.json"); } File.Copy(unitTestFolder + "Model/Xsd/RA-0678_M.xsd", unitTestFolder + "Repositories/testuser/ttd/ttd-datamodels/App/models/0678.xsd", true); HttpClient client = GetTestClient(); string dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/GetDatamodel?modelName=0678"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, dataPathWithData) { }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responsestring = await response.Content.ReadAsStringAsync(); TextReader textReader = new StringReader(responsestring); JsonValue jsonValue = await JsonValue.ParseAsync(textReader); JsonSchema jsonSchema = new JsonSerializer().Deserialize <JsonSchema>(jsonValue); dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/UpdateDatamodel?modelName=0678"; var serializer = new JsonSerializer(); JsonValue toar = serializer.Serialize(jsonSchema); string requestBody = toar.ToString(); HttpRequestMessage httpRequestMessagePut = new HttpRequestMessage(HttpMethod.Put, dataPathWithData) { Content = new StringContent(requestBody, Encoding.UTF8, "application/json") }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessagePut); HttpResponseMessage responsePut = await client.SendAsync(httpRequestMessagePut); Assert.Equal(HttpStatusCode.OK, responsePut.StatusCode); }
public async Task CreateApp_InvalidRepoName_BadRequest() { // Arrange string uri = $"/designer/api/v1/repos/ttd&repository=2021-application"; HttpClient client = GetTestClient(new Mock <IRepository>().Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert Assert.Equal(HttpStatusCode.BadRequest, res.StatusCode); }
public async Task CopyApp_TargetRepoAlreadyExists_ConflictIsReturned() { // Arrange string uri = $"/designer/api/v1/repos/copyapp?org=ttd&sourceRepository=apps-test&targetRepository=existing-repo"; HttpClient client = GetTestClient(new Mock <IRepository>().Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); // Assert Assert.Equal(HttpStatusCode.Conflict, res.StatusCode); }
public async Task GetDatamodels_NoInput_ShouldReturnAllModels() { var client = GetTestClient(); var url = $"{_versionPrefix}/ttd/hvem-er-hvem/Datamodels/"; var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); var response = await client.SendAsync(httpRequestMessage); var json = await response.Content.ReadAsStringAsync(); var altinnCoreFiles = System.Text.Json.JsonSerializer.Deserialize<List<AltinnCoreFile>>(json); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(7, altinnCoreFiles.Count); }
public async void KeepAlive_SessionIsExtended() { // Arrange string uri = $"{_versionPrefix}/keepalive"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri); HttpClient client = GetTestClient(); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage response = await client.SendAsync(httpRequestMessage); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async Task Get_Datamodel_onlyXsd_Ok() { HttpClient client = GetTestClient(); string dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/GetDatamodel?modelName=35721"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, dataPathWithData); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responsestring = await response.Content.ReadAsStringAsync(); TextReader textReader = new StringReader(responsestring); JsonValue jsonValue = await JsonValue.ParseAsync(textReader); JsonSchema jsonSchema = new JsonSerializer().Deserialize<JsonSchema>(jsonValue); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.Equal(5, jsonSchema.Count); }
public async Task UpdateDatamodel_FilePathIsInvalid_ReturnsBadRequest() { // Arrange HttpClient client = GetTestClient(); string dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/GetDatamodel?modelName=0678"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, dataPathWithData) { }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responsestring = await response.Content.ReadAsStringAsync(); TextReader textReader = new StringReader(responsestring); JsonValue jsonValue = await JsonValue.ParseAsync(textReader); JsonSchema jsonSchema = new JsonSerializer().Deserialize <JsonSchema>(jsonValue); dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/UpdateDatamodel?modelName=../../0678"; var serializer = new JsonSerializer(); JsonValue toar = serializer.Serialize(jsonSchema); string requestBody = toar.ToString(); HttpRequestMessage httpRequestMessagePut = new HttpRequestMessage(HttpMethod.Put, dataPathWithData) { Content = new StringContent(requestBody, Encoding.UTF8, "application/json") }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessagePut); // Act HttpResponseMessage responsePut = await client.SendAsync(httpRequestMessagePut); // Assert Assert.Equal(HttpStatusCode.BadRequest, responsePut.StatusCode); string responsestringPut = await responsePut.Content.ReadAsStringAsync(); Assert.Equal("Invalid model name value.", responsestringPut); }
public async Task CopyApp_InvalidSourceRepoName_BadRequest() { // Arrange string uri = "/designer/api/v1/repos/copyapp?org=ttd&sourceRepository=ddd.git%3Furl%3D{herkanmannåfrittgjøreting}&targetRepository=cloned-target-app"; HttpClient client = GetTestClient(new Mock <IRepository>().Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); string actual = await res.Content.ReadAsStringAsync(); // Assert Assert.Equal(HttpStatusCode.BadRequest, res.StatusCode); Assert.Contains("is an invalid repository name", actual); }
public async Task GetDatamodel_InvalidFilePath_ReturnsBadRequest() { // Arrange HttpClient client = GetTestClient(); string dataPathWithData = $"{_versionPrefix}/ttd/ttd-datamodels/Datamodels/GetDatamodel?modelName=../App/models/41111"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, dataPathWithData); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responsestring = await response.Content.ReadAsStringAsync(); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); Assert.Equal("Invalid model name value.", responsestring); }
public static void AddOnlineUser(OnlineUser onlineUser) { try { // 获取在线用户记录器 OnlineUserRecorder recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; if (recorder == null) { Register(); recorder = HttpContext.Current.Cache[SessionConst.OnlineUserRecorderCacheKey] as OnlineUserRecorder; } //用于限制用户只能在一处登录 onlineUser.AuthenticationId = AuthenticationUtil.GetLoginUserGuid(); // 用户角色 //onlineUser.UserDegree = user.UserRoles.First().RoleId; // SessionID onlineUser.SessionID = HttpContext.Current.Session != null ? HttpContext.Current.Session.SessionID : onlineUser.UserName; // IP 地址 //onlineUser.ClientIP = IPUtil.GetHostAddress(); // 登录时间 if (!onlineUser.LoginTime.HasValue) { onlineUser.LoginTime = DateTime.Now; } // 最后活动时间 onlineUser.ActiveTime = DateTime.Now; // 最后请求地址 onlineUser.RequestURL = HttpContext.Current.Request.RawUrl; // 保存用户信息 recorder.AddUser(onlineUser); } catch (Exception ex) { _logger.Info(ex); } }
public async Task <ActionResult> Register(RegisterViewModel model) { try { bool success = await _proxy.RegisterUserAsync(model.Customer, AuthenticationUtil.HashPasswordString(model.Customer.Email, model.Password)); if (!success) { return(View()); } Session["roleId"] = model.Customer.RoleId; Session["customerId"] = model.Customer.Id; Session["email"] = model.Customer.Email; return(RedirectToAction("Index", "Home")); } catch { return(View()); } }
public async void GetRemainingSessionTime_Ok() { // Arrange string uri = $"{_versionPrefix}/remaining"; HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri); HttpClient client = GetTestClient(); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responseString = await response.Content.ReadAsStringAsync(); int remainingTime = int.Parse(responseString); // Assert Assert.True(remainingTime == 194); }
public async Task <ActionResult> Login(LoginViewModel model) { try { var customer = await _proxy.LoginCustomerAsync(model.Email, AuthenticationUtil.HashPasswordString(model.Email, model.Password)); if (customer == null) { return(RedirectToAction("Login")); } Session["roleId"] = customer.RoleId; Session["customerId"] = customer.Id; Session["email"] = customer.Email; return(RedirectToAction("Index", "Home")); } catch { return(View()); } }
public async Task GetReleases_SingleLaggingRelease_PipelineServiceCalled() { // Arrange string uri = $"{_versionPrefix}/udi/kjaerestebesok/releases?sortBy=created&sortDirection=Descending"; List <ReleaseEntity> completedReleases = GetReleasesList("singleLaggingRelease.json"); Mock <IPipelineService> pipelineService = new Mock <IPipelineService>(); pipelineService .Setup(ps => ps.UpdateReleaseStatus(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.CompletedTask); Mock <IReleaseService> releaseService = new Mock <IReleaseService>(); releaseService .Setup(rs => rs.GetAsync(It.IsAny <DocumentQueryModel>())) .ReturnsAsync(new SearchResults <ReleaseEntity> { Results = completedReleases }); HttpClient client = GetTestClient(releaseService.Object, pipelineService.Object); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uri); await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); // Act HttpResponseMessage res = await client.SendAsync(httpRequestMessage); string responseString = await res.Content.ReadAsStringAsync(); SearchResults <ReleaseEntity> searchResult = JsonSerializer.Deserialize <SearchResults <ReleaseEntity> >(responseString, _options); IEnumerable <ReleaseEntity> actual = searchResult.Results; // Assert Assert.Equal(HttpStatusCode.OK, res.StatusCode); Assert.Equal(5, actual.Count()); Assert.Contains(actual, r => r.Build.Status == Altinn.Studio.Designer.TypedHttpClients.AzureDevOps.Enums.BuildStatus.InProgress); pipelineService.Verify(p => p.UpdateReleaseStatus(It.IsAny <string>(), It.IsAny <string>()), Times.Once); releaseService.VerifyAll(); }
public async Task AddXsd_DatamodelsRepo_ShouldReturnCreated() { // Arrange var org = "ttd"; var sourceRepository = "empty-datamodels"; var developer = "testUser"; var targetRepository = Guid.NewGuid().ToString(); await TestDataHelper.CopyRepositoryForTest(org, sourceRepository, developer, targetRepository); var client = GetTestClient(); var url = $"{_versionPrefix}/{org}/{targetRepository}/datamodels/upload"; var fileStream = TestDataHelper.LoadDataFromEmbeddedResource("Designer.Tests._TestData.Model.Xsd.Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.xsd"); var formData = new MultipartFormDataContent(); var streamContent = new StreamContent(fileStream); streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); formData.Add(streamContent, "file", "Kursdomene_HvemErHvem_M_2021-04-08_5742_34627_SERES.xsd"); var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url) { Content = formData }; await AuthenticationUtil.AddAuthenticateAndAuthAndXsrFCookieToRequest(client, httpRequestMessage); try { var response = await client.SendAsync(httpRequestMessage); Assert.Equal(HttpStatusCode.Created, response.StatusCode); } finally { TestDataHelper.DeleteAppRepository(org, targetRepository, developer); } }