Ejemplo n.º 1
0
 public async void Delayed_Completion_After_Debounced_Item()
 {
     await AsyncEnum.Just(1)
     .ConcatWith(
         AsyncEnum.Timer(TimeSpan.FromMilliseconds(200))
         .Select(v => 0)
         .IgnoreElements()
         )
     .Throttle(TimeSpan.FromMilliseconds(100))
     .AssertResult(1);
 }
Ejemplo n.º 2
0
        public async Task MergeConcurrentlyOf4Sources()
        {
            var firstStream  = AsyncEnum.Just(1);
            var secondStream = AsyncEnum.Just(2);
            var thirdStream  = AsyncEnum.Just(3);
            var forthStream  = AsyncEnum.Just(4);

            var list = await firstStream.MergeConcurrently(secondStream, thirdStream, forthStream).ToListAsync();

            Assert.True(list.Count == 4);
        }
Ejemplo n.º 3
0
 public async void Async_Normal()
 {
     await
     AsyncEnum.FromArray(
         AsyncEnumerable.Range(1, 3),
         AsyncEnumerable.Empty <int>(),
         AsyncEnum.FromArray(4, 5, 6, 7),
         AsyncEnumerable.Empty <int>(),
         AsyncEnum.Just(8),
         AsyncEnum.FromEnumerable(new[] { 9, 10 }),
         AsyncEnumerable.Empty <int>()
         )
     .Merge()
     .AssertResultSet(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
 }
Ejemplo n.º 4
0
        public async Task StripStringMessageTest()
        {
            var content = "77";
            var message = new MqttApplicationMessage
            {
                Payload = Encoding.UTF8.GetBytes(content)
            };

            var stream = AsyncEnum.Just(message);

            var result = stream.FromTextValues <int>().Strip();

            var testResult = await result.ToListAsync();

            Assert.True(testResult.First().Content == 77);
        }
Ejemplo n.º 5
0
        public void MergeConcurrentlyOf4Sources_CalledInDispatcherThread()
        {
            AsyncContext.Run(async() =>
            {
                var threadId     = Thread.CurrentThread.ManagedThreadId;
                var firstStream  = AsyncEnum.Just(1);
                var secondStream = AsyncEnum.Just(2);
                var thirdStream  = AsyncEnum.Just(3);
                var forthStream  = AsyncEnum.Just(4);

                var list = await firstStream.MergeConcurrently(secondStream, thirdStream, forthStream)
                           .Do(i => Assert.True(Thread.CurrentThread.ManagedThreadId == threadId)).ToListAsync();

                Assert.True(list.Count == 4);
            });
        }
Ejemplo n.º 6
0
        public async Task StripJsonMessageTest()
        {
            var content = new TestContent()
            {
                Number = 77,
                Text   = "Huhu",
                Time   = DateTime.Now
            };

            var serializedContent = JsonConvert.SerializeObject(content);

            var message = new MqttApplicationMessage
            {
                Payload = Encoding.UTF8.GetBytes(serializedContent)
            };

            var stream = AsyncEnum.Just(message);

            var result = stream.FromJsonValues <TestContent>().Strip();

            var testResult = await result.ToListAsync();

            Assert.True(Equals(testResult.First().Content, content));
        }
Ejemplo n.º 7
0
 public async void Item_Error_EmitLast()
 {
     await AsyncEnum.Just(1).WithError(new InvalidOperationException())
     .Throttle(TimeSpan.FromMilliseconds(1000), true)
     .AssertFailure(typeof(InvalidOperationException), 1);
 }
Ejemplo n.º 8
0
 public async void Normal()
 {
     await AsyncEnum.Just(1)
     .AssertResult(1);
 }