public void Test_Mapping_StringField( ) { ApiResourceMapping mapping = new ApiResourceMapping( ); mapping.ResourceMappingIdentityField = Entity.Get <Field>("core:description"); mapping.Save( ); ConnectorRequest request = new ConnectorRequest { ControllerRootPath = "https://whatever/spapi/api/", TenantName = "Tenant1", ApiPath = new string [] { "testapi", "testendpoint" } }; Resource resource = new Resource( ); resource.Description = "Test1"; resource.Save( ); string expected = "https://whatever/spapi/api/Tenant1/testapi/testendpoint/Test1"; IResourceUriGenerator generator = GetGenerator( ); string actual = generator.CreateResourceUri(resource, request, mapping); Assert.That(actual, Is.EqualTo(expected)); }
public void Test_Mapping_EntityGuid( ) { ApiResourceMapping mapping = new ApiResourceMapping( ); mapping.Save(); ConnectorRequest request = new ConnectorRequest { ControllerRootPath = "https://whatever/spapi/api/", TenantName = "Tenant1", ApiPath = new string [] { "testapi", "testendpoint" } }; Resource resource = new Resource( ); resource.Save( ); Assert.That(resource.UpgradeId, Is.Not.EqualTo(Guid.Empty)); string expected = "https://whatever/spapi/api/Tenant1/testapi/testendpoint/" + resource.UpgradeId.ToString( ); IResourceUriGenerator generator = GetGenerator( ); string actual = generator.CreateResourceUri(resource, request, mapping); Assert.That(actual, Is.EqualTo(expected)); }
/// <summary> /// Create /// </summary> private ConnectorResponse HandlePost(ConnectorRequest request, ApiResourceMapping mapping) { IReaderToEntityAdapter adapter = GetReaderAdapter(mapping); IObjectReader reader = request.Payload; // Check payload CheckPayload(reader); // Create instance IEntity instance = adapter.CreateEntity(reader, ConnectorRequestExceptionReporter.Instance); SaveInstance(instance); // Create URI to identify instance string instanceUri = _resourceUriGenerator.CreateResourceUri(instance, request, mapping); var response = new ConnectorResponse(HttpStatusCode.Created, "Created"); response.Headers.Add("Location", instanceUri); return(response); }
public void Test_Null_Mapping( ) { IResourceUriGenerator generator = GetGenerator( ); Assert.Throws <ArgumentNullException>(() => generator.CreateResourceUri(new Resource( ), new ConnectorRequest( ), null)); }