public async Task CreatePidUriTemplate_Success() { var baseUrl = Graph.Metadata.Constants.Resource.PidUrlPrefix; var pidUriTemplateIdType = TestUtils.GetRandomEnumValue <IdType>(); var pidUriTemplateSuffix = TestUtils.GetRandomEnumValue <Suffix>(); // Arrange var pidUriTpl = new PidUriTemplateBuilder().GenerateSampleData() .WithBaseUrl(baseUrl) .WithPidUriTemplateIdType(pidUriTemplateIdType) .WithPidUriTemplateSuffix(pidUriTemplateSuffix) .Build(); HttpContent requestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); // Act var result = await _client.PostAsync(_apiPath, requestContent); result.EnsureSuccessStatusCode(); // Assert var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); var pidUriTplResult = JsonConvert.DeserializeObject <PidUriTemplateWriteResultCTO>(content).Entity; Assert.NotNull(pidUriTplResult); AssertResultProperties(pidUriTplResult.Properties, baseUrl, "1", pidUriTemplateIdType, pidUriTemplateSuffix); // Cleanup var deleteResult = await _client.DeleteAsync($"{_apiPath}?id={HttpUtility.UrlEncode(pidUriTplResult.Id)}"); deleteResult.EnsureSuccessStatusCode(); }
public async Task EditPidUriTemplate_Error_NotFound_InvalidUri() { var pidUriTpl = new PidUriTemplateBuilder().GenerateSampleData().Build(); HttpContent updateRequestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var editResult = await _client.PutAsync($"{_apiPath}?id=INVALID_URI", updateRequestContent); Assert.Equal(HttpStatusCode.BadRequest, editResult.StatusCode); }
public async Task EditPidUriTemplate_Success() { var baseUrl = Graph.Metadata.Constants.Resource.PidUrlPrefix; var pidUriTemplateIdType = TestUtils.GetRandomEnumValue <IdType>(); var pidUriTemplateSuffix = TestUtils.GetRandomEnumValue <Suffix>(); // Create TPL var pidUriTpl = new PidUriTemplateBuilder().GenerateSampleData().WithBaseUrl(baseUrl).WithPidUriTemplateIdType(pidUriTemplateIdType).WithPidUriTemplateSuffix(pidUriTemplateSuffix).Build(); HttpContent createRequestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var createResult = await _client.PostAsync(_apiPath, createRequestContent); createResult.EnsureSuccessStatusCode(); var createdContent = await createResult.Content.ReadAsStringAsync().ConfigureAwait(false); var createdEntity = JsonConvert.DeserializeObject <PidUriTemplateWriteResultCTO>(createdContent); var searchUrl = $"{_apiPath}?id={TestUtils.EncodeIfNecessary(createdEntity.Entity.Id)}"; // Search TPL var searchResult = await _client.GetAsync(searchUrl); searchResult.EnsureSuccessStatusCode(); // Edit TPL var newRoute = "new-route"; var updateTpl = new PidUriTemplateBuilder().GenerateSampleData().WithRoute(newRoute).WithBaseUrl(baseUrl).WithPidUriTemplateIdType(pidUriTemplateIdType).WithPidUriTemplateSuffix(pidUriTemplateSuffix).Build(); HttpContent updateRequestContent = new StringContent(updateTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var editResult = await _client.PutAsync(searchUrl, updateRequestContent); editResult.EnsureSuccessStatusCode(); // Search TPL var searchResultAfterEdit = await _client.GetAsync(searchUrl); searchResultAfterEdit.EnsureSuccessStatusCode(); var updateContentAfterEdit = await searchResultAfterEdit.Content.ReadAsStringAsync().ConfigureAwait(false); var updatedEntity = JsonConvert.DeserializeObject <BaseEntityResultDTO>(updateContentAfterEdit); Assert.Equal(new List <string> { newRoute }, updatedEntity.Properties[COLID.Graph.Metadata.Constants.PidUriTemplate.HasRoute]); // Cleanup TPL var deleteResult = await _client.DeleteAsync(searchUrl); deleteResult.EnsureSuccessStatusCode(); }
public async Task DeletePidUriTemplate_Purge_Success() { // Create Tpl var baseUrl = Graph.Metadata.Constants.Resource.PidUrlPrefix; var pidUriTemplateIdType = TestUtils.GetRandomEnumValue <IdType>(); var pidUriTemplateSuffix = TestUtils.GetRandomEnumValue <Suffix>(); var pidUriTpl = new PidUriTemplateBuilder().GenerateSampleData() .WithBaseUrl(baseUrl) .WithPidUriTemplateIdType(pidUriTemplateIdType) .WithPidUriTemplateSuffix(pidUriTemplateSuffix) .Build(); HttpContent requestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var result = await _client.PostAsync(_apiPath, requestContent); result.EnsureSuccessStatusCode(); var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); var pidUriTplResult = JsonConvert.DeserializeObject <PidUriTemplateWriteResultCTO>(content).Entity; var searchUrl = $"{_apiPath}?id={TestUtils.EncodeIfNecessary(pidUriTplResult.Id)}"; // Search Template var searchResult = await _client.GetAsync(searchUrl); searchResult.EnsureSuccessStatusCode(); // Delete Template var deleteResult = await _client.DeleteAsync(searchUrl); deleteResult.EnsureSuccessStatusCode(); // Search Template again var searchResultAfterDeletion = await _client.GetAsync(searchUrl); Assert.Equal(HttpStatusCode.NotFound, searchResultAfterDeletion.StatusCode); }
public async Task EditPidUriTemplate_Error_BadRequest_SameTemplateExists() { var baseUrl = Graph.Metadata.Constants.Resource.PidUrlPrefix; var pidUriTemplateIdType = IdType.Guid.GetDescription(); var pidUriTemplateSuffix = Suffix.Empty.GetDescription(); // Arrange // Create TPL var pidUriTpl = new PidUriTemplateBuilder().GenerateSampleData().WithBaseUrl(baseUrl).WithPidUriTemplateIdType(pidUriTemplateIdType).WithPidUriTemplateSuffix(pidUriTemplateSuffix).Build(); HttpContent createRequestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var createResult = await _client.PostAsync(_apiPath, createRequestContent); createResult.EnsureSuccessStatusCode(); var createdContent = await createResult.Content.ReadAsStringAsync().ConfigureAwait(false); var createdEntity = JsonConvert.DeserializeObject <PidUriTemplateWriteResultCTO>(createdContent); var searchUrl = $"{_apiPath}?id={TestUtils.EncodeIfNecessary(createdEntity.Entity.Id)}"; // Search TPL var searchResult = await _client.GetAsync(searchUrl); searchResult.EnsureSuccessStatusCode(); // Edit TPL var newSearchUrl = $"{_apiPath}?id={TestUtils.EncodeIfNecessary(_validId)}"; HttpContent updateRequestContent = new StringContent(pidUriTpl.ToString(), Encoding.UTF8, MediaTypeNames.Application.Json); var editResult = await _client.PutAsync(newSearchUrl, updateRequestContent); Assert.Equal(HttpStatusCode.BadRequest, editResult.StatusCode); // Cleanup var deleteResult = await _client.DeleteAsync(searchUrl); deleteResult.EnsureSuccessStatusCode(); }