franz/franz.tests/UnitTest1.cs

64 lines
2.0 KiB
C#
Raw Normal View History

2021-06-19 01:07:12 -04:00
using System;
using System.Threading.Tasks;
using franz;
using NUnit.Framework;
namespace franz.tests
{
[TestFixture]
public class Tests
{
Telefranz f1;
Telefranz f2;
[SetUp]
public void Setup()
{
f1 = new Telefranz("libfranztest1", "focalor:9092", "/usr/lib/librdkafka.so");
f2 = new Telefranz("libfranztest2", "focalor:9092", "/usr/lib/librdkafka.so");
}
[Test]
public async Task reportsToSoundoff()
2021-06-19 01:07:12 -04:00
{
var f1Reported = false;
var f2Reported = false;
f1.addHandler((silver_messages.global.report r) => {
switch(r.name)
{
case "libfranztest1":
{
f1Reported = true;
TestContext.Out.WriteLine("f1 reported");
break;
}
case "libfranztest2":
{
f2Reported = true;
TestContext.Out.WriteLine("f2 reported");
break;
}
}
});
f1.StartListening();
f2.StartListening();
await Task.Delay(2000);
2021-06-19 01:07:12 -04:00
f1.ProduceMessage(new silver_messages.global.sound_off());
Task.WaitAny(
Task.Run(async () => {
while(f1Reported == false || f2Reported == false)
{
//TestContext.Out.WriteLine("not ready, giving another 100ms");
await Task.Delay(100);
}
//TestContext.Out.WriteLine("done, ready, green");
}),
Task.Run(async () => {
await Task.Delay(120000);
2021-06-19 01:07:12 -04:00
TestContext.Out.WriteLine("time up");
Assert.Fail();
})
);
}
}
}