|
2 | 2 | using Microsoft.VisualStudio.TestTools.UnitTesting;
|
3 | 3 | using Newtonsoft.Json.Linq;
|
4 | 4 | using System;
|
| 5 | +using System.Collections.Generic; |
| 6 | +using System.IO; |
5 | 7 | using System.Linq;
|
6 | 8 | using System.Text;
|
7 | 9 | using System.Threading;
|
@@ -173,5 +175,58 @@ await ipfs.PubSub.SubscribeAsync(topic, msg =>
|
173 | 175 | await Task.Delay(1000);
|
174 | 176 | Assert.AreEqual(1, messageCount1);
|
175 | 177 | }
|
| 178 | + |
| 179 | + [TestMethod] |
| 180 | + public async Task Subscribe_BinaryMessage() |
| 181 | + { |
| 182 | + var messages = new List<IPublishedMessage>(); |
| 183 | + var expected = new byte[] { 0, 1, 2, 4, (byte)'a', (byte)'b', 0xfe, 0xff }; |
| 184 | + var ipfs = TestFixture.Ipfs; |
| 185 | + var topic = "net-ipfs-http-client-test-" + Guid.NewGuid().ToString(); |
| 186 | + var cs = new CancellationTokenSource(); |
| 187 | + try |
| 188 | + { |
| 189 | + await ipfs.PubSub.SubscribeAsync(topic, msg => |
| 190 | + { |
| 191 | + messages.Add(msg); |
| 192 | + }, cs.Token); |
| 193 | + await ipfs.PubSub.PublishAsync(topic, expected); |
| 194 | + |
| 195 | + await Task.Delay(1000); |
| 196 | + Assert.AreEqual(1, messages.Count); |
| 197 | + CollectionAssert.AreEqual(expected, messages[0].DataBytes); |
| 198 | + } |
| 199 | + finally |
| 200 | + { |
| 201 | + cs.Cancel(); |
| 202 | + } |
| 203 | + } |
| 204 | + |
| 205 | + [TestMethod] |
| 206 | + public async Task Subscribe_StreamMessage() |
| 207 | + { |
| 208 | + var messages = new List<IPublishedMessage>(); |
| 209 | + var expected = new byte[] { 0, 1, 2, 4, (byte)'a', (byte)'b', 0xfe, 0xff }; |
| 210 | + var ipfs = TestFixture.Ipfs; |
| 211 | + var topic = "net-ipfs-http-client-test-" + Guid.NewGuid().ToString(); |
| 212 | + var cs = new CancellationTokenSource(); |
| 213 | + try |
| 214 | + { |
| 215 | + await ipfs.PubSub.SubscribeAsync(topic, msg => |
| 216 | + { |
| 217 | + messages.Add(msg); |
| 218 | + }, cs.Token); |
| 219 | + var ms = new MemoryStream(expected, false); |
| 220 | + await ipfs.PubSub.PublishAsync(topic, ms); |
| 221 | + |
| 222 | + await Task.Delay(1000); |
| 223 | + Assert.AreEqual(1, messages.Count); |
| 224 | + CollectionAssert.AreEqual(expected, messages[0].DataBytes); |
| 225 | + } |
| 226 | + finally |
| 227 | + { |
| 228 | + cs.Cancel(); |
| 229 | + } |
| 230 | + } |
176 | 231 | }
|
177 | 232 | }
|
0 commit comments