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));
        }
Exemplo n.º 3
0
        /// <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));
        }