public async Task Test_UdpDataProvider_BasicTest_Async(string ip, int port, bool multicast) { stop = false; events.Clear(); var p = new Udp.Providers.UdpDataProvider(); p.RemoteAddress = IPAddress.Parse(ip); p.RemotePort = port; var cts = new CancellationTokenSource(); var re = new ManualResetEvent(false); var listener = Task.Factory.StartNew(() => { Listen(re, ip, port, multicast); }, cts.Token); re.WaitOne(); await Task.Delay(1000); using (var scope = await AuditScope.CreateAsync("Test_UdpDataProvider_BasicTest", null, EventCreationPolicy.InsertOnStartReplaceOnEnd, p)) { Task.Delay(100).Wait(); await scope.SaveAsync(); scope.Discard(); } await Task.Delay(2000); stop = true; cts.Cancel(); await Task.Delay(2000); Assert.AreEqual(2, events.Count); Assert.AreEqual("Test_UdpDataProvider_BasicTest", events[0].EventType); Assert.AreEqual("Test_UdpDataProvider_BasicTest", events[1].EventType); Assert.NotNull(events[0].CustomFields["UdpEventId"]); Assert.AreEqual(events[0].CustomFields["UdpEventId"], events[1].CustomFields["UdpEventId"]); }
public void Test_UdpDataProvider_BigPacket(string ip, int port, bool multicast) { stop = false; events.Clear(); var p = new Udp.Providers.UdpDataProvider(); p.RemoteAddress = IPAddress.Parse(ip); p.RemotePort = port; var cts = new CancellationTokenSource(); var re = new ManualResetEvent(false); var listener = Task.Factory.StartNew(() => { Listen(re, ip, port, multicast); }, cts.Token); re.WaitOne(); Task.Delay(1000).Wait(); var target = Enumerable.Range(1, 10000).Select(_ => (byte)255).ToArray(); using (var scope = AuditScope.Create("Test_UdpDataProvider_BigPacket", () => target, EventCreationPolicy.InsertOnEnd, p)) { } Task.Delay(1000).Wait(); Assert.AreEqual(1, events.Count); }
public void Test_UdpDataProvider_BasicTest(string ip, int port, bool multicast) { stop = false; events.Clear(); var p = new Udp.Providers.UdpDataProvider(); p.RemoteAddress = UdpProviderConfigurator.GetIPAddress(ip); p.RemotePort = port; var cts = new CancellationTokenSource(); var re = new ManualResetEvent(false); var listener = Task.Factory.StartNew(() => { Listen(re, ip, port, multicast); }, cts.Token); re.WaitOne(); Task.Delay(1000).Wait(); using (var scope = new AuditScopeFactory().Create("Test_UdpDataProvider_BasicTest", null, EventCreationPolicy.InsertOnStartReplaceOnEnd, p)) { Task.Delay(100).Wait(); } Task.Delay(2000).Wait(); stop = true; cts.Cancel(); Task.Delay(2000).Wait(); Assert.AreEqual(2, events.Count); Assert.AreEqual("Test_UdpDataProvider_BasicTest", events[0].EventType); Assert.AreEqual("Test_UdpDataProvider_BasicTest", events[1].EventType); Assert.NotNull(events[0].CustomFields["UdpEventId"]); Assert.AreEqual(events[0].CustomFields["UdpEventId"].ToString(), events[1].CustomFields["UdpEventId"].ToString()); }
public void Test_UdpDataProvider_PacketOverflow(string ip, int port, bool multicast) { var p = new Udp.Providers.UdpDataProvider(); p.RemoteAddress = IPAddress.Parse(ip); p.RemotePort = port; var target = Enumerable.Range(1, 66000).Select(_ => (byte)255).ToArray(); Assert.Throws <SocketException>(() => { using (var scope = AuditScope.Create("Test_UdpDataProvider_BigPacket", () => target, EventCreationPolicy.InsertOnEnd, p)) { } }); }
private void Listen(ManualResetEvent re, string ipAddress, int port, bool isMulticast) { var dp = new Udp.Providers.UdpDataProvider(); dp.RemoteAddress = IPAddress.Parse(ipAddress); dp.RemotePort = port; dp.MulticastMode = isMulticast ? Udp.Providers.MulticastMode.Enabled : Udp.Providers.MulticastMode.Disabled; re.Set(); while (!stop) { var ev = dp.ReceiveAsync().Result; lock (locker) { events.Add(ev); } } }
public void Test_UdpDataProvider_MultiThread(string ip, int port, bool multicast, int N) { stop = false; events.Clear(); var p = new Udp.Providers.UdpDataProvider(); p.RemoteAddress = IPAddress.Parse(ip); p.RemotePort = port; var cts = new CancellationTokenSource(); var re = new ManualResetEvent(false); var listener = Task.Factory.StartNew(() => { Listen(re, ip, port, multicast); }, cts.Token); re.WaitOne(); Task.Delay(1500).Wait(); var tasks = new List <Task>(); for (int i = 0; i < N; i++) { int a = i; tasks.Add(new Task(() => { using (var scope = AuditScope.Create("Test_UdpDataProvider_MultiThread_" + a, null, EventCreationPolicy.InsertOnEnd, p)) { } })); } for (int i = 0; i < N; i++) { tasks[i].Start(); } Task.WaitAll(tasks.ToArray()); Task.Delay(1000).Wait(); stop = true; cts.Cancel(); Task.Delay(1000).Wait(); Assert.AreEqual(N, events.Count); Assert.IsTrue(events[0].EventType.StartsWith("Test_UdpDataProvider_MultiThread_")); Assert.NotNull(events[0].CustomFields["UdpEventId"]); }