예제 #1
0
        public async Task CreateAndReadSchemaAsync()
        {
            var personSchemaAsString =
                "  { \"title\": \"Person\" , \"type\": \"object\", \"eav-primary-key\":\"myid\", \"properties\": { \"myid\": { }, \"firstName\": { }, \"lastName\": { }, } } ";

            var personSchema = JObject.Parse(personSchemaAsString);
            var eav          = new EavMemoryStorage();
            var service      = new GenericStorage(eav);
            await service.Schema.CreateWithSpecifiedIdAsync((string)personSchema["title"], personSchema);

            var readSchema = await service.Schema.ReadAsync((string)personSchema["title"]);

            Assert.IsNotNull(readSchema);
            Assert.AreEqual(5, readSchema.Count);
        }
예제 #2
0
        public async Task CreateAndReadSchemaAsync_WithAttributeType()
        {
            var personSchemaAsString =
                " { \"title\": \"Person\" , \"type\": \"object\", \"eav-primary-key\":\"myid\", \"properties\": { \"myid\": { \"type\": \"Guid\"}, \"firstName\": { \"type\": \"string\" }, \"lastName\": { \"type\": \"string\"  },  \"age\": { \"type\": \"number\"  } } } ";

            var personSchema = JObject.Parse(personSchemaAsString);

            var eav     = new EavMemoryStorage();
            var service = new GenericStorage(eav);
            await service.Schema.CreateWithSpecifiedIdAsync((string)personSchema["title"], personSchema);

            var personObjectAsString = " {\"firstName\" : \"Lars\", \"lastName\": \"Lindberg\" , \"age\": 47 } ";

            var personObject = JObject.Parse(personObjectAsString);
            var objectId     = await service.Object.CreateAsync((string)personSchema["title"], personObject);

            var readData = await service.Object.ReadAsync((string)personSchema["title"], objectId);

            Assert.IsNotNull(readData);
            Assert.AreEqual(3, readData.Count);
        }
예제 #3
0
        public async Task CreateAndReadSchema_Withid()
        {
            var personSchemaAsString =
                " { \"$id\": \"https://example.com/person.schema.json \", " +
                " \"$schema\": \"http://json-schema.org/draft-07/schema# \", " +
                " \"title\": \"Person\" , " +
                " \"type\": \"object\", " +
                " \"eav-primary-key\":\"myid\",  " +
                " \"properties\": { \"myid\": { \"type\": \"Guid\"}, \"firstName\": { \"type\": \"string\" }, \"lastName\": { \"type\": \"string\"  },  \"age\": { \"type\": \"number\"  } } } ";

            var personSchema = JObject.Parse(personSchemaAsString);

            // Memory Storage
            var eav     = new EavMemoryStorage();
            var service = new GenericStorage(eav);
            await service.Schema.CreateWithSpecifiedIdAsync((string)personSchema["title"], personSchema);

            var readSchema = await service.Schema.ReadAsync((string)personSchema["title"]);

            Assert.IsNotNull(readSchema);
            Assert.AreEqual(6, readSchema.Count);
        }
예제 #4
0
        public async Task CreateAndReadSchema_AttributeType_String()
        {
            var personSchemaAsString =
                " { \"title\": \"Person\" , \"type\": \"object\", \"eav-primary-key\":\"myid\", \"properties\": { \"myid\": { \"type\": \"Guid\"}, \"firstName\": { \"type\": \"string\" }, \"lastName\": { \"type\": \"string\"  },  \"age\": { \"type\": \"integer\"  } } } ";

            var personSchema = JObject.Parse(personSchemaAsString);

            var eav     = new EavMemoryStorage();
            var service = new GenericStorage(eav);
            await service.Schema.CreateWithSpecifiedIdAsync((string)personSchema["title"], personSchema);

            var readSchema = await service.Schema.ReadAsync((string)personSchema["title"]);

            Assert.IsNotNull(readSchema);
            Assert.AreEqual(5, readSchema.Count);
            int result = 0;

            // Looping the Properties schema
            var propertySchema = readSchema["properties"];

            Assert.IsNotNull(propertySchema);
            Assert.AreEqual(4, propertySchema.Count());

            foreach (var rSchema in propertySchema)
            {
                Assert.IsNotNull(rSchema);
                Assert.AreEqual(1, rSchema.Count());

                foreach (var attributeType in rSchema)
                {
                    if (attributeType["type"].ToString() == "string")
                    {
                        result = result + 1;
                    }
                }
            }
            Assert.AreEqual(2, result);
        }