public void AddObjectToSchema() { var schema = _schemaRegistryService.AddSchema( _fixture.Create <string>(), _fixture.Create <GeneralObject>().ToJSONString(), SchemaType.Types.Type.DocumentStorage).Result; var schemaObjectsBefore = _queryService.GetAllObjectsFromSchema(schema.Id_).ExecuteWithRetryPolicy().Result; Assert.Equal(System.Net.HttpStatusCode.OK, schemaObjectsBefore.StatusCode); Assert.Equal("{}", schemaObjectsBefore.Content); var objectId = Guid.NewGuid().ToString(); _kafkaProducer.Produce(new InsertObject() { schemaId = schema.Id_, objectId = objectId, data = _fixture.Create <GeneralObject>(), }); var schemaObjectsAfter = _queryService.GetAllObjectsFromSchema(schema.Id_).ExecuteWithRetryPolicy(m => m.Content.Equals("{}")).Result; Assert.Equal(System.Net.HttpStatusCode.OK, schemaObjectsAfter.StatusCode); Assert.Contains(objectId, schemaObjectsAfter.Content); }
public void SingleSchema_NoRelations() { var indexName = _fixture.Create <string>(); var objectData = _fixture.Create <Person>(); var objectId = _fixture.Create <string>(); var schemaDefinition = JsonSchema.FromType(typeof(Person)).ToJson(); var schemaId = _schemaRegistryService.AddSchema("test_schema", schemaDefinition, SchemaType.Types.Type.DocumentStorage).Result; var materializerFields = new Dictionary <string, object>(); materializerFields.Add("firstName", new SimpleFiled { simple = new SimpleItem { field_name = "firstName", field_type = "string" } }); _schemaRegistryService.AddViewToSchema(schemaId.Id_, "test_view", materializerFields, new List <Relation>(), $"{{ \"index_name\": \"{indexName}\" }}", MaterializerBackend.ElasticSearch); _kafkaProducer.Produce(new InsertObject { objectId = objectId, schemaId = schemaId.Id_, data = objectData }); var result = RetryHelper.TryFetch(() => ElasticsearchConnector.QueryAll <PersonView1>(new Uri(_options.CDL_ELASTICSEARCH_NODE), indexName), arr => arr.Count == 0).Result.ToArray(); Assert.Single(result); Assert.Equal(objectData.FirstName, result[0].FirstName); }
public Task Consume(ConsumeContext <Message> context) { return(topicProducer.Produce(new AuditMessage { Text = context.Message.Text })); }
async Task Execute(BehaviorContext <TInstance> context) { ConsumeEventContext <TInstance> consumeContext = context.CreateConsumeContext(); var message = await _asyncMessageFactory(consumeContext).ConfigureAwait(false); ITopicProducer <TMessage> producer = context.GetProducer <TMessage>(); await producer.Produce(message, _pipe).ConfigureAwait(false); }
async Task Faulted(BehaviorContext <TInstance> context) { if (context.TryGetExceptionContext(out ConsumeExceptionEventContext <TInstance, TException> exceptionContext)) { var message = await _asyncMessageFactory(exceptionContext).ConfigureAwait(false); ITopicProducer <TMessage> producer = context.GetProducer <TMessage>(); await producer.Produce(message, _pipe).ConfigureAwait(false); } }
public async Task Produce(TEvent message) { await _topicProducer.Produce(message); }
public async void MaterializerOnDemand() { var name = _fixture.Create <string>(); var objectId_a = Guid.NewGuid().ToString(); var payload_a = _fixture.Create <Person>(); var viewName = _fixture.Create <string>(); var schema_a = _schemaRegistryService.AddSchema( name, _fixture.Create <GeneralObject>().ToJSONString(), SchemaType.Types.Type.DocumentStorage).Result; var viewFields = new Dictionary <string, object>(); var relation = _edgeRegistryService.AddRelation(schema_a.Id_, schema_a.Id_).Result; var relationForView = new List <Relation>(); relationForView.Add(new Relation() { GlobalId = relation.RelationId_, LocalId = _fixture.Create <UInt32>(), SearchFor = new SearchFor() { SearchFor_ = SearchFor.Types.Direction.Children, } }); viewFields.Add("firstName", new SimpleFiled() { simple = new SimpleItem() { field_name = "firstName", field_type = "String" } }); viewFields.Add("lastName", new SimpleFiled() { simple = new SimpleItem() { field_name = "lastName", field_type = "String" } }); var view = _schemaRegistryService.AddViewToSchema(schema_a.Id_, viewName, viewFields, new List <Relation>()).Result; var viewDetails = _schemaRegistryService.GetView(view.Id_).Result; var schemaWithView = _schemaRegistryService.GetFullSchema(schema_a.Id_).Result; Assert.True(schemaWithView.Views.Count == 1); _kafkaProducer.Produce(new InsertObject() { schemaId = schema_a.Id_, objectId = objectId_a, data = payload_a }).Wait(); Thread.Sleep(1000); var res = _onDemandMaterializerService.Materialize(view.Id_, new List <string>() { schema_a.Id_ }); //should have only one row while (await res.ResponseStream.MoveNext()) { Assert.True(res.ResponseStream.Current.Fields.Count == 2); Assert.Contains(payload_a.FirstName, res.ResponseStream.Current.Fields["firstName"]); Assert.Contains(payload_a.LastName, res.ResponseStream.Current.Fields["lastName"]); } }
public void ResolveTree() { var objectIdForParentSchema = Guid.NewGuid().ToString(); var objectIdForChildSchema = Guid.NewGuid().ToString(); var parentSchemaName = _fixture.Create <string>(); var childSchemaName = _fixture.Create <string>(); var parentSchema = _schemaRegistryService.AddSchema( parentSchemaName, _fixture.Create <Person>().ToJSONString(), SchemaType.Types.Type.DocumentStorage).Result; var childSchema = _schemaRegistryService.AddSchema( childSchemaName, _fixture.Create <Car>().ToJSONString(), SchemaType.Types.Type.DocumentStorage).Result; _kafkaProducer.Produce(new InsertObject() { schemaId = parentSchema.Id_, objectId = objectIdForParentSchema, data = _fixture.Create <Person>(), }); _kafkaProducer.Produce(new InsertObject() { schemaId = childSchema.Id_, objectId = objectIdForChildSchema, data = _fixture.Create <Car>(), }); var relation = _edgeRegistryService.AddRelation(childSchema.Id_, parentSchema.Id_).Result; var newEdge = new Edge() { RelationId = relation.RelationId_, ParentObjectId = objectIdForParentSchema, }; newEdge.ChildObjectIds.Add(objectIdForChildSchema); _edgeRegistryService.AddEdges(new List <Edge>() { newEdge }); var relations = new List <Relation>(); relations.Add(new Relation() { GlobalId = relation.RelationId_, LocalId = 1, SearchFor = new SearchFor() { SearchFor_ = SearchFor.Types.Direction.Children }, }); var tree = _edgeRegistryService.ResolveTree(relations).Result; Assert.True(tree.Rows.Count == 1); var treeObject = tree.Rows[0]; Assert.True(treeObject.HasBaseObjectId); Assert.True(treeObject.BaseObjectId.Equals(objectIdForParentSchema)); Assert.True(treeObject.RelationObjectIds.Count.Equals(1)); Assert.True(treeObject.RelationObjectIds[0].Equals(objectIdForChildSchema)); }