public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_is_empty()
        {
            var array = await AsyncEnumerable.Empty <int>()
                        .Concat(maybe => AsyncEnumerableEx.Return(!maybe.IsSome ? 1 : 2))
                        .ToArrayAsync();

            Assert.Equal(new[] { 1 }, array);
        }
            public IAsyncEnumerable <TElement> Deserialize <TElement>(object result, IGremlinQueryEnvironment environment)
            {
                if (!typeof(TElement).IsAssignableFrom(typeof(string)))
                {
                    throw new InvalidOperationException($"Can't deserialize a string to {typeof(TElement).Name}. Make sure you cast call Cast<string>() on the query before executing it.");
                }

                return(AsyncEnumerableEx.Return((TElement)(object)result?.ToString()));
            }
Esempio n. 3
0
                public IAsyncEnumerable <TElement> Deserialize <TElement>(TExecutionResult result)
                {
                    if (!typeof(TElement).IsAssignableFrom(typeof(string)))
                    {
                        throw new NotSupportedException();
                    }

                    return(AsyncEnumerableEx.Return((TElement)(object)result?.ToString()));
                }
        public async ValueTask <int> Linq_AsyncEnumerable_Value()
        {
            var sum = 0;

            await foreach (var item in asyncEnumerableValue.SelectMany(item => AsyncEnumerableEx.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
Esempio n. 5
0
        public async ValueTask <int> Linq_Return_Async()
        {
            var sum = 0;

            await foreach (var item in AsyncEnumerableEx.Return(1))
            {
                sum += item;
            }
            return(sum);
        }
        public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_has_values()
        {
            var array = await new[] { 1, 2, 3 }
            .ToAsyncEnumerable()
            .Concat(maybe => maybe
                    .Filter(x => x == 3)
                    .Match(
                        _ => AsyncEnumerableEx.Return(4),
                        () => AsyncEnumerableEx.Return(-1)))
            .ToArrayAsync();

            Assert.Equal(new[] { 1, 2, 3, 4 }, array);
        }
Esempio n. 7
0
            public IAsyncEnumerable <TElement> Deserialize <TElement>(object executionResult, IGremlinQueryEnvironment environment)
            {
                var result = _fragmentSerializer
                             .TryDeserialize(executionResult, typeof(TElement[]), environment);

                return(result switch
                {
                    TElement[] elements => elements.ToAsyncEnumerable(),
                    IAsyncEnumerable <TElement> enumerable => enumerable,
                    TElement element => AsyncEnumerableEx.Return(element),
                    IEnumerable enumerable => enumerable.Cast <TElement>().ToAsyncEnumerable(),
                    { } obj => throw new InvalidCastException($"A result of type {obj.GetType()} can't be interpreted as {nameof(IAsyncEnumerable<TElement>)}."),
                    _ => AsyncEnumerable.Empty <TElement>()
                });
Esempio n. 8
0
        public async Task Expand1Async()
        {
            var xs = new[] { 2, 3 }.ToAsyncEnumerable().Expand(x => AsyncEnumerableEx.Return(x - 1).Repeat(x - 1));

            var e = xs.GetAsyncEnumerator();

            await HasNextAsync(e, 2);
            await HasNextAsync(e, 3);
            await HasNextAsync(e, 1);
            await HasNextAsync(e, 2);
            await HasNextAsync(e, 2);
            await HasNextAsync(e, 1);
            await HasNextAsync(e, 1);
            await NoNextAsync(e);
        }
        public async Task AsyncEnumerable_Concat_produces_correct_sequence_when_first_sequence_faults()
        {
            var ex = new Exception();

            var array = await AsyncEnumerableEx.Throw <int>(ex)
                        .Concat(maybe => AsyncEnumerableEx.Return(1))
                        .Materialize()
                        .ToArrayAsync();

            array
            .Should()
            .HaveCount(1);

            array[0].Exception
            .Should()
            .Be(ex);
        }
Esempio n. 10
0
        public async Task Return1Async()
        {
            var xs = AsyncEnumerableEx.Return(42);

            await HasNextAsync(xs.GetAsyncEnumerator(), 42);
        }
Esempio n. 11
0
        public async Task Expand4()
        {
            var xs = new[] { 2, 3 }.ToAsyncEnumerable().Expand(x => AsyncEnumerableEx.Return(x - 1).Repeat(x - 1));

            await SequenceIdentity(xs);
        }
Esempio n. 12
0
 public IAsyncEnumerable <object> Execute(object groovySerializedQuery)
 {
     return(AsyncEnumerableEx
            .Return(JToken.Parse(_json)));
 }
 public IAsyncEnumerable <TSerializedQuery> Execute(TSerializedQuery serializedQuery)
 {
     return(AsyncEnumerableEx.Return(serializedQuery));
 }
 public IAsyncEnumerable <object> Execute(object groovySerializedQuery, IGremlinQueryEnvironment environment)
 {
     return(AsyncEnumerableEx
            .Return(JToken.Parse(_json)));
 }
Esempio n. 15
0
        public async Task <int> Linq_AsyncEnumerable_Reference()
        {
            var sum = 0;

            await foreach (var item in AsyncEnumerable.SelectMany(asyncEnumerableReference, item => AsyncEnumerableEx.Return(item)))
            {
                sum += item;
            }
            return(sum);
        }
 public IAsyncEnumerable <object> Execute(object serializedQuery)
 {
     return(AsyncEnumerableEx.Return(serializedQuery));
 }
Esempio n. 17
0
 public IAsyncEnumerable <JToken> Execute(GroovySerializedGremlinQuery groovySerializedQuery)
 {
     return(AsyncEnumerableEx
            .Return(JToken.Parse(_json)));
 }