Exemple #1
0
        public async Task BindAsyncCollectorAsync_JObjectCollection()
        {
            JArray values = new JArray();

            for (int i = 1; i <= 3; i++)
            {
                JObject jsonObject = new JObject
                {
                    { "prop1", "value1" },
                    { "prop2", true },
                    { "prop3", 123 }
                };
                values.Add(jsonObject);
            }

            string json          = values.ToString();
            var    results       = new JArray();
            var    collectorMock = new Mock <IAsyncCollector <JObject> >(MockBehavior.Strict);

            collectorMock.Setup(p => p.AddAsync(It.IsAny <JObject>(), CancellationToken.None))
            .Callback <JObject, CancellationToken>((mockObject, mockToken) =>
            {
                results.Add(mockObject);
            }).Returns(Task.CompletedTask);

            var binderMock = new Mock <Binder>(MockBehavior.Strict);
            var attributes = new Attribute[] { new QueueAttribute("test") };

            binderMock.Setup(p => p.BindAsync <IAsyncCollector <JObject> >(attributes, CancellationToken.None)).ReturnsAsync(collectorMock.Object);

            BindingContext bindingContext = new BindingContext
            {
                Attributes = attributes,
                Binder     = binderMock.Object,
                Value      = json
            };

            await FunctionBinding.BindAsyncCollectorAsync <JObject>(bindingContext);

            Assert.Equal(3, results.Count);
            for (int i = 0; i < 3; i++)
            {
                JObject jsonObject = (JObject)results[i];
                Assert.Equal("value1", (string)jsonObject["prop1"]);
                Assert.Equal(true, (bool)jsonObject["prop2"]);
                Assert.Equal(123, (int)jsonObject["prop3"]);
            }
        }
Exemple #2
0
        public async Task BindAsyncCollectorAsync_JObjectCollection()
        {
            JArray values = new JArray();

            for (int i = 1; i <= 3; i++)
            {
                JObject jsonObject = new JObject
                {
                    { "prop1", "value1" },
                    { "prop2", true },
                    { "prop3", 123 }
                };
                values.Add(jsonObject);
            }

            string json = values.ToString();

            byte[]       bytes = Encoding.UTF8.GetBytes(json);
            MemoryStream ms    = new MemoryStream(bytes);

            var results       = new JArray();
            var collectorMock = new Mock <IAsyncCollector <JObject> >(MockBehavior.Strict);

            collectorMock.Setup(p => p.AddAsync(It.IsAny <JObject>(), CancellationToken.None))
            .Callback <JObject, CancellationToken>((mockObject, mockToken) =>
            {
                results.Add(mockObject);
            }).Returns(Task.CompletedTask);

            var                   binderMock = new Mock <IBinderEx>(MockBehavior.Strict);
            QueueAttribute        attribute  = new QueueAttribute("test");
            RuntimeBindingContext context    = new RuntimeBindingContext(attribute);

            binderMock.Setup(p => p.BindAsync <IAsyncCollector <JObject> >(context, CancellationToken.None)).ReturnsAsync(collectorMock.Object);

            await FunctionBinding.BindAsyncCollectorAsync <JObject>(ms, binderMock.Object, context);

            Assert.Equal(3, results.Count);
            for (int i = 0; i < 3; i++)
            {
                JObject jsonObject = (JObject)results[i];
                Assert.Equal("value1", (string)jsonObject["prop1"]);
                Assert.Equal(true, (bool)jsonObject["prop2"]);
                Assert.Equal(123, (int)jsonObject["prop3"]);
            }
        }