Пример #1
0
        public void DefautlValue()
        {
            var mockSchemaClient = new MockSchemaRegistryClient();
            var config           = new StreamConfig();
            var serdes           = new MockProtoSerDes(mockSchemaClient);

            config.ApplicationId                  = "test-workflow-avroserdes";
            config.DefaultKeySerDes               = new StringSerDes();
            config.DefaultValueSerDes             = serdes;
            config.SchemaRegistryMaxCachedSchemas = null;
            config.SchemaRegistryRequestTimeoutMs = null;

            var builder = new StreamBuilder();

            builder
            .Stream <string, Helpers.Proto.Person>("person")
            .Filter((k, v) => v.Age >= 18)
            .MapValues((v) => v.Age)
            .To <StringSerDes, Int32SerDes>("person-major");

            var topo = builder.Build();

            using (var driver = new TopologyTestDriver(topo, config))
            {
                var input  = driver.CreateInputTopic <string, Helpers.Proto.Person>("person");
                var output = driver.CreateOuputTopic <string, int, StringSerDes, Int32SerDes>("person-major");
                input.PipeInput("test1", new Helpers.Proto.Person {
                    Age = 23, FirstName = "f", LastName = "l"
                });
                var record = output.ReadKeyValue();
                Assert.IsNotNull(record);
                Assert.AreEqual("test1", record.Message.Key);
                Assert.AreEqual(23, record.Message.Value);
            }
        }
Пример #2
0
        public void IncorrectConfigurationInterface()
        {
            var mockSchemaClient = new MockSchemaRegistryClient();
            var config           = new Mock <IStreamConfig>();
            var serdes           = new MockProtoSerDes(mockSchemaClient);

            Assert.Throws <StreamConfigException>(() => serdes.Initialize(new Net.SerDes.SerDesContext(config.Object)));
        }
Пример #3
0
        public void DefaultSchemaRegistryConfig()
        {
            var mockSchemaClient = new MockSchemaRegistryClient();
            var config           = new StreamConfig();

            var serdes = new MockProtoSerDes(mockSchemaClient);

            serdes.Initialize(new Net.SerDes.SerDesContext(config));

            Assert.AreEqual(100, mockSchemaClient.MaxCachedSchemas);
            Assert.AreEqual(30000, mockSchemaClient.RequestTimeoutMs);
        }
Пример #4
0
        public void SerializeOK()
        {
            var mockSchemaClient = new MockSchemaRegistryClient();
            var config           = new StreamConfig();
            var serdes           = new MockProtoSerDes(mockSchemaClient);

            serdes.Initialize(new Net.SerDes.SerDesContext(config));
            var person = new Helpers.Proto.Person {
                Age = 18, FirstName = "TEST", LastName = "TEST"
            };
            var bytes = serdes.Serialize(person, new Confluent.Kafka.SerializationContext(Confluent.Kafka.MessageComponentType.Value, topic));

            Assert.IsNotNull(bytes);
            Assert.IsTrue(bytes.Length > 0);
        }
Пример #5
0
        public void SchemaRegistryConfig()
        {
            var mockSchemaClient = new MockSchemaRegistryClient();
            var config           = new StreamConfig();

            config.AutoRegisterSchemas            = true;
            config.SchemaRegistryMaxCachedSchemas = 1;
            config.SchemaRegistryRequestTimeoutMs = 30;
            config.SubjectNameStrategy            = SubjectNameStrategy.TopicRecord;

            var serdes = new MockProtoSerDes(mockSchemaClient);

            serdes.Initialize(new Net.SerDes.SerDesContext(config));

            Assert.AreEqual(1, mockSchemaClient.MaxCachedSchemas);
            Assert.AreEqual(30, mockSchemaClient.RequestTimeoutMs);
        }