public async void Put_UpdateData_Conflict() { string dataPathWithData = $"{_versionPrefix}/instances/1337/6aa47207-f089-4c11-9cb2-f00af6f66a47/data/24bfec2e-c4ce-4e82-8fa9-aa39da329fd5"; HttpContent content = new StringContent("This is a blob file with updated data"); HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1337, 1337, 3)); HttpResponseMessage response = await client.PutAsync($"{dataPathWithData}?dataType=default", content); Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); }
public async void Search_IncludeActivedAndDeleted_OriginalQuerySuccesfullyConverted() { // Arrange Dictionary <string, StringValues> actual = new Dictionary <string, StringValues>(); Mock <IInstanceRepository> instanceRepositoryMock = new Mock <IInstanceRepository>(); instanceRepositoryMock .Setup(ir => ir.GetInstancesFromQuery(It.IsAny <Dictionary <string, StringValues> >(), It.IsAny <string>(), It.IsAny <int>())) .Callback <Dictionary <string, StringValues>, string, int>((query, cont, size) => { actual = query; }) .ReturnsAsync((InstanceQueryResponse)null); int expectedParamCount = 3; HttpClient client = GetTestClient(instanceRepositoryMock); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?includeActive=true&includeDeleted=true&instanceOwner.partyId=1606"); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.True(actual.ContainsKey("instanceOwner.partyId")); actual.TryGetValue("status.isActiveOrSoftDeleted", out StringValues actualIsArchivedOrSoftDeleted); Assert.True(bool.Parse(actualIsArchivedOrSoftDeleted.First())); Assert.Equal(expectedParamCount, actual.Keys.Count); }
public async void Search_SearchStringDoesNotMatchAnyApp_NoCallToRepository() { // Arrange Mock <IInstanceRepository> instanceRepositoryMock = new Mock <IInstanceRepository>(); instanceRepositoryMock .Setup(ir => ir.GetInstancesFromQuery(It.IsAny <Dictionary <string, StringValues> >(), It.IsAny <string>(), It.IsAny <int>())) .ReturnsAsync((InstanceQueryResponse)null); int expectedCount = 0; HttpClient client = GetTestClient(instanceRepositoryMock); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?searchString=karpeDiem"); string responseContent = await responseMessage.Content.ReadAsStringAsync(); List <MessageBoxInstance> actual = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(responseContent); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.Equal(expectedCount, actual.Count); instanceRepositoryMock.Verify( ir => ir.GetInstancesFromQuery(It.IsAny <Dictionary <string, StringValues> >(), It.IsAny <string>(), It.IsAny <int>()), Times.Never); }
public async void Delete_ArchivedMissingRole_ReturnsForbidden() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1337, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/367a5e5a-12c6-4a74-b72b-766d95f859b0?hard=false"); HttpStatusCode actualStatusCode = response.StatusCode; // Assert Assert.Equal(HttpStatusCode.Forbidden, actualStatusCode); }
public async void Search_FilterOnAppId_HardDeletedInstancesAreExcludedFromResult() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); int expectedCount = 1; // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?instanceOwner.partyId=1600&appId=tdd/test-applikasjon-1&language=en"); string content = await responseMessage.Content.ReadAsStringAsync(); List <MessageBoxInstance> actualResult = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(content); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.Equal(expectedCount, actualResult.Count); }
public async void Delete_HardDeleteSoftDeleted() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/7a951b5b-ef96-4032-9273-f8d7651266f4?hard=true"); // Assert HttpStatusCode actualStatusCode = response.StatusCode; string content = await response.Content.ReadAsStringAsync(); bool actualResult = JsonConvert.DeserializeObject <bool>(content); HttpStatusCode expectedStatusCode = HttpStatusCode.OK; bool expectedResult = true; Assert.Equal(expectedResult, actualResult); Assert.Equal(expectedStatusCode, actualStatusCode); }
public async void Delete_ActiveMissingRole_ReturnsForbidden() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/e6efc10e-913b-4a81-a36a-02376f5f5678?hard=true"); HttpStatusCode actualStatusCode = response.StatusCode; // Assert Assert.Equal(HttpStatusCode.Forbidden, actualStatusCode); }
public async void Post_NewData_NotAuthorized() { string dataPathWithData = $"{_versionPrefix}/instances/1337/69c259d1-9c1f-4ab6-9d8b-5c210042dc4f/data"; HttpContent content = new StringContent("This is a blob file"); HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1337, 3)); HttpResponseMessage response = await client.PostAsync($"{dataPathWithData}?dataType=default", content); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async Task Instance_Post_WithNæringOgSkattemelding_ValidateOkThenNext() { // Gets JWT token. In production this would be given from authentication component when exchanging a ID porten token. string token = PrincipalUtil.GetToken(1337); // Setup client and calls Instance controller on the App that instansiates a new instances of the app HttpClient client = SetupUtil.GetTestClient(_factory, "tdd", "sirius"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "/tdd/sirius/instances?instanceOwnerPartyId=1337") { }; HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responseContent = await response.Content.ReadAsStringAsync(); Instance instance = JsonConvert.DeserializeObject <Instance>(responseContent); Assert.Equal(HttpStatusCode.Created, response.StatusCode); Assert.NotNull(instance); Assert.Equal("1337", instance.InstanceOwner.PartyId); // Get Data from the main form HttpRequestMessage httpRequestMessageGetData = new HttpRequestMessage(HttpMethod.Get, "/tdd/sirius/instances/" + instance.Id + "/data/" + instance.Data[0].Id); { }; HttpResponseMessage responseData = await client.SendAsync(httpRequestMessageGetData); string responseContentData = await responseData.Content.ReadAsStringAsync(); Skjema siriusMainForm = (Skjema)JsonConvert.DeserializeObject(responseContentData, typeof(Skjema)); // Modify the prefilled form. This would need to be replaced with the real sirius form siriusMainForm.Permisjonsopplysningergrp8822 = new Permisjonsopplysningergrp8822(); siriusMainForm.Permisjonsopplysningergrp8822.AnsattEierandel20EllerMerdatadef33294 = new AnsattEierandel20EllerMerdatadef33294() { value = "50" }; XmlSerializer serializer = new XmlSerializer(typeof(Skjema)); using MemoryStream stream = new MemoryStream(); serializer.Serialize(stream, siriusMainForm); stream.Position = 0; StreamContent streamContent = new StreamContent(stream); streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); streamContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("attachment; filename=data-element.xml"); HttpResponseMessage putresponse = await client.PutAsync("/tdd/sirius/instances/" + instance.Id + "/data/" + instance.Data[0].Id, streamContent); // Add Næringsoppgave.xml string næringsppgave = File.ReadAllText("Data/Files/data-element.xml"); byte[] byteArray = Encoding.UTF8.GetBytes(næringsppgave); //byte[] byteArray = Encoding.ASCII.GetBytes(contents); MemoryStream næringsoppgavestream = new MemoryStream(byteArray); StreamContent streamContentNæring = new StreamContent(næringsoppgavestream); streamContentNæring.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("attachment; filename=data-element.xml"); streamContentNæring.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); HttpResponseMessage postresponseNæring = await client.PostAsync("/tdd/sirius/instances/" + instance.Id + "/data/?datatype=næringsoppgave", streamContentNæring); DataElement dataElementNæring = (DataElement)JsonConvert.DeserializeObject(await postresponseNæring.Content.ReadAsStringAsync(), typeof(DataElement)); // Add skattemelding.xml string skattemelding = File.ReadAllText("Data/Files/data-element.xml"); byte[] byteArraySkattemelding = Encoding.UTF8.GetBytes(skattemelding); //byte[] byteArray = Encoding.ASCII.GetBytes(contents); MemoryStream skattemeldingstream = new MemoryStream(byteArraySkattemelding); HttpContent streamContentSkattemelding = new StreamContent(skattemeldingstream); streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); streamContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("attachment; filename=data-element.xml"); HttpResponseMessage postresponseskattemelding = await client.PostAsync("/tdd/sirius/instances/" + instance.Id + "/data/?datatype=skattemelding", streamContentNæring); DataElement dataElementSkattemelding = (DataElement)JsonConvert.DeserializeObject(await postresponseskattemelding.Content.ReadAsStringAsync(), typeof(DataElement)); // Validate instance. This validates that main form has valid data and required data string url = "/tdd/sirius/instances/" + instance.Id + "/validate"; HttpResponseMessage responseValidation = await client.GetAsync(url); string responseContentValidation = await responseValidation.Content.ReadAsStringAsync(); List <ValidationIssue> messages = (List <ValidationIssue>)JsonConvert.DeserializeObject(responseContentValidation, typeof(List <ValidationIssue>)); Assert.Empty(messages); // Handle first next go from data to confirmation HttpRequestMessage httpRequestMessageFirstNext = new HttpRequestMessage(HttpMethod.Put, "/tdd/sirius/instances/" + instance.Id + "/process/next") { }; HttpResponseMessage responseFirstNext = await client.SendAsync(httpRequestMessageFirstNext); string responseContentFirstNext = await responseFirstNext.Content.ReadAsStringAsync(); ProcessState stateAfterFirstNext = (ProcessState)JsonConvert.DeserializeObject(responseContentFirstNext, typeof(ProcessState)); Assert.Equal("Task_2", stateAfterFirstNext.CurrentTask.ElementId); // Validate instance in Task_2. This validates that PDF for nærings is in place HttpResponseMessage responseValidationTask2 = await client.GetAsync(url); string responseContentValidationTask2 = await responseValidationTask2.Content.ReadAsStringAsync(); List <ValidationIssue> messagesTask2 = (List <ValidationIssue>)JsonConvert.DeserializeObject(responseContentValidationTask2, typeof(List <ValidationIssue>)); Assert.Empty(messagesTask2); // Move process from Task_2 (Confirmation) to Task_3 (Feedback). HttpRequestMessage httpRequestMessageSecondNext = new HttpRequestMessage(HttpMethod.Put, "/tdd/sirius/instances/" + instance.Id + "/process/next") { }; HttpResponseMessage responseSecondNext = await client.SendAsync(httpRequestMessageSecondNext); string responseContentSecondNext = await responseSecondNext.Content.ReadAsStringAsync(); ProcessState stateAfterSecondNext = (ProcessState)JsonConvert.DeserializeObject(responseContentSecondNext, typeof(ProcessState)); Assert.Equal("Task_3", stateAfterSecondNext.CurrentTask.ElementId); // Delete all data created TestDataUtil.DeleteInstanceAndData("tdd", "sirius", 1337, new Guid(instance.Id.Split('/')[1])); }
public async void Get_DataElement_Org_Ok() { // Arrange string dataPathWithData = $"{_versionPrefix}/instances/1337/ca9da17c-904a-44d2-9771-a5420acfbcf3/data/28023597-516b-4a71-a77c-d3736912abd5"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetOrgToken("tdd")); // Act HttpResponseMessage response = await client.GetAsync($"{dataPathWithData}"); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); }
public async void Post_NewData_Ok() { string dataPathWithData = $"{_versionPrefix}/instances/1337/bc19107c-508f-48d9-bcd7-54ffec905306/data"; HttpContent content = new StringContent("This is a blob file"); HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1337, 1337, 3)); HttpResponseMessage response = await client.PostAsync($"{dataPathWithData}?dataType=default", content); if (response.StatusCode.Equals(HttpStatusCode.InternalServerError)) { string serverContent = await response.Content.ReadAsStringAsync(); Assert.Equal("Hei", serverContent); } Assert.Equal(HttpStatusCode.Created, response.StatusCode); }
public async void Get_DataElement_ToLowAuthenticationLevel() { string dataPathWithData = $"{_versionPrefix}/instances/1337/d91fd644-1028-4efd-924f-4ca187354514/data/f4feb26c-8eed-4d1d-9d75-9239c40724e9"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1337, 1337, 1)); HttpResponseMessage response = await client.GetAsync($"{dataPathWithData}"); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async void Get_DataElements_NotAuthorized() { string dataPathWithData = $"{_versionPrefix}/instances/1337/d91fd644-1028-4efd-924f-4ca187354514/dataelements/"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1, 3)); HttpResponseMessage response = await client.GetAsync($"{dataPathWithData}"); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async void Delete_DataElement_NotAuthorized() { string dataPathWithData = $"{_versionPrefix}/instances/1337/649388f0-a2c0-4774-bd11-c870223ed819/data/11f7c994-6681-47a1-9626-fcf6c27308a5"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1, 3)); HttpResponseMessage response = await client.DeleteAsync($"{dataPathWithData}"); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async void Undelete_RestoreNonExistentInstance_ReturnsNotFound() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.PutAsync($"{BasePath}/sbl/instances/1337/4be22ede-a16c-4a93-be7f-c529788d6a4c/undelete", null); // Assert Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); }
public async Task Instance_Post_WithNæringOgSkattemelding_ValidateOk() { string token = PrincipalUtil.GetToken(1337); HttpClient client = SetupUtil.GetTestClient(_factory, "tdd", "sirius"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "/tdd/sirius/instances?instanceOwnerPartyId=1337") { }; HttpResponseMessage response = await client.SendAsync(httpRequestMessage); string responseContent = await response.Content.ReadAsStringAsync(); Instance instance = JsonConvert.DeserializeObject <Instance>(responseContent); Assert.Equal(HttpStatusCode.Created, response.StatusCode); Assert.NotNull(instance); Assert.Equal("1337", instance.InstanceOwner.PartyId); // Get Data from Instance HttpRequestMessage httpRequestMessageGetData = new HttpRequestMessage(HttpMethod.Get, "/tdd/sirius/instances/" + instance.Id + "/data/" + instance.Data[0].Id); { }; HttpResponseMessage responseData = await client.SendAsync(httpRequestMessageGetData); string responseContentData = await responseData.Content.ReadAsStringAsync(); Skjema siriusMainForm = (Skjema)JsonConvert.DeserializeObject(responseContentData, typeof(Skjema)); // Modify the prefilled form. This would need to be replaced with the real sirius form siriusMainForm.Permisjonsopplysningergrp8822 = new Permisjonsopplysningergrp8822(); siriusMainForm.Permisjonsopplysningergrp8822.AnsattEierandel20EllerMerdatadef33294 = new AnsattEierandel20EllerMerdatadef33294() { value = "50" }; XmlSerializer serializer = new XmlSerializer(typeof(Skjema)); using MemoryStream stream = new MemoryStream(); serializer.Serialize(stream, siriusMainForm); stream.Position = 0; StreamContent streamContent = new StreamContent(stream); streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml"); HttpResponseMessage putresponse = await client.PutAsync("/tdd/sirius/instances/" + instance.Id + "/data/" + instance.Data[0].Id, streamContent); // Add Næringsoppgave.xml string næringsppgave = File.ReadAllText("Data/Files/data-element.xml"); byte[] byteArray = Encoding.UTF8.GetBytes(næringsppgave); //byte[] byteArray = Encoding.ASCII.GetBytes(contents); MemoryStream næringsoppgavestream = new MemoryStream(byteArray); StreamContent streamContentNæring = new StreamContent(næringsoppgavestream); streamContentNæring.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); streamContentNæring.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("attachment; filename=data-element.xml"); HttpResponseMessage postresponseNæring = await client.PostAsync("/tdd/sirius/instances/" + instance.Id + "/data/?datatype=næringsoppgave", streamContentNæring); DataElement dataElementNæring = (DataElement)JsonConvert.DeserializeObject(await postresponseNæring.Content.ReadAsStringAsync(), typeof(DataElement)); // Add skattemelding.xml string skattemelding = File.ReadAllText("Data/Files/data-element.xml"); byte[] byteArraySkattemelding = Encoding.UTF8.GetBytes(næringsppgave); //byte[] byteArray = Encoding.ASCII.GetBytes(contents); MemoryStream skattemeldingstream = new MemoryStream(byteArraySkattemelding); StreamContent streamContentSkattemelding = new StreamContent(skattemeldingstream); streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/xml"); HttpResponseMessage postresponseskattemelding = await client.PostAsync("/tdd/sirius/instances/" + instance.Id + "/data/?datatype=skattemelding", streamContentNæring); DataElement dataElementSkattemelding = (DataElement)JsonConvert.DeserializeObject(await postresponseskattemelding.Content.ReadAsStringAsync(), typeof(DataElement)); // Validate instance string url = "/tdd/sirius/instances/" + instance.Id + "/validate"; HttpResponseMessage responseValidation = await client.GetAsync(url); string responseContentValidation = await responseValidation.Content.ReadAsStringAsync(); List <ValidationIssue> messages = (List <ValidationIssue>)JsonConvert.DeserializeObject(responseContentValidation, typeof(List <ValidationIssue>)); Assert.Empty(messages); TestDataUtil.DeleteInstanceAndData("tdd", "sirius", 1337, new Guid(instance.Id.Split('/')[1])); }
public async void Delete_SoftDeleteActiveInstance_InstanceIsMarked_EventIsCreated_ReturnsTrue() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/08274f48-8313-4e2d-9788-bbdacef5a54e?hard=false"); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); string content = await response.Content.ReadAsStringAsync(); bool actualResult = JsonConvert.DeserializeObject <bool>(content); Assert.True(actualResult); }
public async void Search_MultiplePartyIds_InstancesForBothIdsReturned() { // Arrange int expectedCount = 3; int expectedDistinctInstanceOwners = 2; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1600, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?instanceOwner.partyId=1600&instanceOwner.partyId=1000&appId=ttd/complete-test"); string content = await responseMessage.Content.ReadAsStringAsync(); List <MessageBoxInstance> actual = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(content); int distinctInstanceOwners = actual.Select(i => i.InstanceOwnerId).Distinct().Count(); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.Equal(expectedCount, actual.Count()); Assert.Equal(expectedDistinctInstanceOwners, distinctInstanceOwners); }
public async void Delete_ActiveHasRole_ReturnsOk() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/d9a586ca-17ab-453d-9fc5-35eaadb3369b?hard=true"); string content = await response.Content.ReadAsStringAsync(); bool actualResult = JsonConvert.DeserializeObject <bool>(content); // Assert Assert.True(actualResult); }
public async void GetMessageBoxInstanceList_RequestArchivedInstancesForGivenOwner_ReturnsCorrectListOfInstances() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/{1337}?state=archived"); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); string responseContent = await responseMessage.Content.ReadAsStringAsync(); List <MessageBoxInstance> messageBoxInstances = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(responseContent); int actualCount = messageBoxInstances.Count; int expectedCount = 6; Assert.Equal(expectedCount, actualCount); }
public async void Delete_ArchivedHasRole_ReturnsOk() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.DeleteAsync($"{BasePath}/sbl/instances/1337/3b67392f-36c6-42dc-998f-c367e771dcdd?hard=false"); HttpStatusCode actualStatusCode = response.StatusCode; string content = await response.Content.ReadAsStringAsync(); bool actualResult = JsonConvert.DeserializeObject <bool>(content); // Assert Assert.True(actualResult); Assert.Equal(HttpStatusCode.OK, actualStatusCode); }
public async void GetMessageBoxInstance_RequestsExistingInstanceUserCannotDelete_InstanceIsSuccessfullyMappedAndReturned() { // Arrange string instanceId = "1606/6323a337-26e7-4d40-89e8-f5bb3d80be3a"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/{instanceId}?language=en"); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); string responseContent = await responseMessage.Content.ReadAsStringAsync(); MessageBoxInstance actual = JsonConvert.DeserializeObject <MessageBoxInstance>(responseContent); Assert.False(actual.AllowDelete); Assert.True(actual.AuthorizedForWrite); }
public async void Search_FilterOnAppId_ReturnsActiveArchivedAndDeletedInstances() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1600, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?instanceOwner.partyId=1600&appId=ttd/steffens-2020-v2"); string content = await responseMessage.Content.ReadAsStringAsync(); List <MessageBoxInstance> actualResult = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(content); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.Equal(1, actualResult.Count(i => i.DeleteStatus == DeleteStatusType.SoftDeleted)); Assert.Equal(1, actualResult.Count(i => i.ProcessCurrentTask == "FormFilling")); Assert.Equal(1, actualResult.Count(i => i.ProcessCurrentTask == "Archived" && i.DeleteStatus == DeleteStatusType.Default)); }
public async void GetMessageBoxInstance_RequestsInstanceUserIsNotAuthorized_ForbiddenReturned() { // Arrange string instanceId = "1337/6323a337-26e7-4d40-89e8-f5bb3d80be3a"; HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/{instanceId}?language=en"); // Assert Assert.Equal(HttpStatusCode.Forbidden, responseMessage.StatusCode); }
public async void Search_FilterOnUnknownParameter_BadRequestIsReturned() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?stephanie=kul"); string content = await responseMessage.Content.ReadAsStringAsync(); // Assert Assert.Equal(HttpStatusCode.BadRequest, responseMessage.StatusCode); }
public async void Undelete_RestoreSoftDeletedInstance_ReturnsTrue() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.PutAsync($"{BasePath}/sbl/instances/{1337}/da1f620f-1764-4f98-9f03-74e5e20f10fe/undelete", null); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); string content = await response.Content.ReadAsStringAsync(); bool actualResult = JsonConvert.DeserializeObject <bool>(content); Assert.True(actualResult); }
public async void GetMessageBoxInstanceList_RequestAllInstancesForAnOwnerInEnglish_ReturnsAllElementsWithEnglishTitles() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.GetAsync($"{BasePath}/sbl/instances/1337?state=active&language=en"); string content = await response.Content.ReadAsStringAsync(); List <MessageBoxInstance> messageBoxInstances = JsonConvert.DeserializeObject <List <MessageBoxInstance> >(content); int actualCount = messageBoxInstances.Count; string actualTitle = messageBoxInstances.First().Title; // Assert int expectedCount = 13; string expectedTitle = "Name change"; Assert.Equal(expectedCount, actualCount); Assert.Equal(expectedTitle, actualTitle); }
public async void Undelete_AttemptToRestoreHardDeletedInstance_ReturnsNotFound() { // Arrange HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1337, 3)); // Act HttpResponseMessage response = await client.PutAsync($"{BasePath}/sbl/instances/1337/f888c42b-8749-41d6-8048-8fc28c70beaa/undelete", null); // Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); string content = await response.Content.ReadAsStringAsync(); string expectedMsg = "Instance was permanently deleted and cannot be restored."; Assert.Equal(expectedMsg, content); }
public async void Search_MatchFoundForSearchString_OriginalQuerySuccesfullyConverted() { // Arrange Dictionary <string, StringValues> actual = new Dictionary <string, StringValues>(); Mock <IInstanceRepository> instanceRepositoryMock = new Mock <IInstanceRepository>(); instanceRepositoryMock .Setup(ir => ir.GetInstancesFromQuery(It.IsAny <Dictionary <string, StringValues> >(), It.IsAny <string>(), It.IsAny <int>())) .Callback <Dictionary <string, StringValues>, string, int>((query, cont, size) => { actual = query; }) .ReturnsAsync((InstanceQueryResponse)null); string expectedAppId = "tdd/endring-av-navn"; HttpClient client = GetTestClient(instanceRepositoryMock); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(3, 1606, 3)); // Act HttpResponseMessage responseMessage = await client.GetAsync($"{BasePath}/sbl/instances/search?searchString=navn"); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); Assert.True(actual.ContainsKey("appId")); actual.TryGetValue("appId", out StringValues actualAppid); Assert.Equal(expectedAppId, actualAppid.First()); Assert.False(actual.ContainsKey("searchString")); instanceRepositoryMock.VerifyAll(); }
public async void Put_UpdateData_Ok() { string dataPathWithData = $"{_versionPrefix}/instances/1337/649388f0-a2c0-4774-bd11-c870223ed819/data/11f7c994-6681-47a1-9626-fcf6c27308a5"; HttpContent content = new StringContent("This is a blob file with updated data"); HttpClient client = GetTestClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", PrincipalUtil.GetToken(1337, 1337, 3)); HttpResponseMessage response = await client.PutAsync($"{dataPathWithData}?dataType=default", content); Assert.Equal(HttpStatusCode.OK, response.StatusCode); }