Ejemplo n.º 1
0
        public async void ItWrapsTheSchemaInSourceMetadata()
        {
            var config = new WorkerConfiguration {
                PublishUrl = "http://datadock.io/"
            };
            var proc = new ImportSchemaProcessor(config, _mockSchemeStore.Object, _mockFileStore.Object);

            WithJsonSchema(@"{ '@context': 'http://www.w3.org/ns/csvw' }");
#pragma warning disable 618
            var job = new JobInfo
#pragma warning restore 618
            {
                JobType      = JobType.SchemaCreate,
                UserId       = "kal",
                OwnerId      = "datadock",
                RepositoryId = "test",
                SchemaFileId = "schemaFileId"
            };
            await proc.ProcessJob(job, new UserAccount(), _mockProgressLog.Object);

            _mockSchemeStore.Verify(s => s.CreateOrUpdateSchemaRecordAsync(It.Is <SchemaInfo>(p =>
                                                                                              p.OwnerId.Equals("datadock") &&
                                                                                              p.RepositoryId.Equals("test") &&
                                                                                              p.Schema.ContainsKey("@context") &&
                                                                                              (p.Schema["@context"] as JValue).Value <string>().Equals("http://www.w3.org/ns/csvw"))));
        }
Ejemplo n.º 2
0
        public async Task ItMakesUrlPropertiesRelative()
        {
            var config = new WorkerConfiguration {
                PublishUrl = "http://datadock.io/"
            };
            var proc = new ImportSchemaProcessor(config, _mockSchemeStore.Object, _mockFileStore.Object);

            WithJsonSchema(@"{
                '@context': 'http://www.w3.org/ns/csvw',
                'url': 'http://datadock.io/datadock/test/id/dataset/mydataset',
                'dc:title': 'http://datadock.io/datadock/test/foo',
                'dc:license': 'https://creativecommons.org/publicdomain/zero/1.0/',
                'aboutUrl': 'http://datadock.io/datadock/test/id/resource/mydataset/monument_record_no/{monument_record_no}', 
                'tableSchema': {
                    'columns': [
                        {
                            'name' : 'foo',
                            'propertyUrl': 'http://datadock.io/datadock/test/id/definition/foo',
                            'valueUrl' : 'http://datadock.io/datadock/test/id/bar/{bar}'
                        }
                    ]
                }
            }");
#pragma warning disable 618
            var job = new JobInfo
#pragma warning restore 618
            {
                JobType      = JobType.SchemaCreate, UserId = "kal", OwnerId = "datadock", RepositoryId = "test",
                SchemaFileId = "schemaFileId"
            };
            await proc.ProcessJob(job, new UserAccount(), _mockProgressLog.Object);

            _mockSchemeStore.Verify(s => s.CreateOrUpdateSchemaRecordAsync(It.Is <SchemaInfo>(p =>
                                                                                              (p.Schema["aboutUrl"] as JValue).Value <string>().Equals("id/resource/mydataset/monument_record_no/{monument_record_no}"))));
            _mockSchemeStore.Verify(s => s.CreateOrUpdateSchemaRecordAsync(It.Is <SchemaInfo>(p =>
                                                                                              (p.Schema["dc:title"] as JValue).Value <string>().Equals("http://datadock.io/datadock/test/foo"))));
            _mockSchemeStore.Verify(s => s.CreateOrUpdateSchemaRecordAsync(It.Is <SchemaInfo>(p =>
                                                                                              (p.Schema["tableSchema"]["columns"][0]["propertyUrl"] as JValue).Value <string>()
                                                                                              .Equals("id/definition/foo"))));
            _mockSchemeStore.Verify(s => s.CreateOrUpdateSchemaRecordAsync(It.Is <SchemaInfo>(p =>
                                                                                              (p.Schema["tableSchema"]["columns"][0]["valueUrl"] as JValue).Value <string>()
                                                                                              .Equals("id/bar/{bar}"))));
        }