public async Task VerifyCosmosDefaultResultSetStreamIteratorOperationType()
        {
            CosmosClient mockClient = MockDocumentClient.CreateMockCosmosClient();

            CosmosDatabase           database    = new CosmosDatabase(mockClient, "database");
            CosmosContainer          container   = new CosmosContainer(database, "container");
            CosmosItems              item        = new CosmosItems(container);
            CosmosSqlQueryDefinition sql         = new CosmosSqlQueryDefinition("select * from r");
            CosmosResultSetIterator  setIterator = item
                                                   .CreateItemQueryAsStream(sql, "pk", requestOptions: new CosmosQueryRequestOptions());

            TestHandler testHandler = new TestHandler((request, cancellationToken) => {
                Assert.AreEqual(
                    15, //OperationType.SqlQuery
                    (int)request.GetType().GetProperty("OperationType", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(request, null)
                    );
                return(TestHandler.ReturnSuccess());
            });

            mockClient.RequestHandler.InnerHandler = testHandler;
            mockClient.CosmosConfiguration.UseConnectionModeDirect();
            CosmosResponseMessage response = await setIterator.FetchNextSetAsync();

            testHandler = new TestHandler((request, cancellationToken) => {
                Assert.AreEqual(
                    14, //OperationType.Query
                    (int)request.GetType().GetProperty("OperationType", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(request, null)
                    );
                return(TestHandler.ReturnSuccess());
            });
            mockClient.RequestHandler.InnerHandler = testHandler;
            mockClient.CosmosConfiguration.UseConnectionModeGateway();
            response = await setIterator.FetchNextSetAsync();
        }
Esempio n. 2
0
        private static CosmosContainerCore GetMockedContainer(CosmosItems mockedItems)
        {
            Mock <CosmosContainerCore> mockedContainer = new Mock <CosmosContainerCore>();

            mockedContainer.Setup(c => c.LinkUri).Returns(new Uri("/dbs/myDb/colls/myColl", UriKind.Relative));
            //mockedContainer.Setup(c => c.Client).Returns(DocumentServiceLeaseUpdaterCosmosTests.GetMockedClient());
            mockedContainer.Setup(c => c.Items).Returns(mockedItems);
            return(mockedContainer.Object);
        }
Esempio n. 3
0
        /// <summary>
        /// Initialize the db
        /// </summary>
        /// <returns></returns>
        public static async Task InitDbConnection()
        {
            CosmosConfiguration config = new CosmosConfiguration(Endpoint, PrimaryKey);

            client = new CosmosClient(config);
            CosmosDatabase database = await client.Databases.CreateDatabaseIfNotExistsAsync(DatabaseId);

            CosmosContainer container = await database.Containers.CreateContainerIfNotExistsAsync(ContainerId, "/CategoryName");

            items = container.Items;
        }
Esempio n. 4
0
        public static async Task Initialize(IConfiguration configuration)
        {
            databaseId  = configuration.GetSection("CosmosDb").GetSection("Database").Value ?? "Tasks";
            containerId = configuration.GetSection("CosmosDb").GetSection("Container").Value ?? "Items";
            endpoint    = configuration.GetSection("CosmosDb").GetSection("Endpoint").Value;
            primaryKey  = configuration.GetSection("CosmosDb").GetSection("PrimaryKey").Value;

            var config = new CosmosConfiguration(endpoint, primaryKey);

            client = new CosmosClient(config);

            CosmosDatabase database = await client.Databases.CreateDatabaseIfNotExistsAsync(databaseId);

            CosmosContainer container =
                await database.Containers.CreateContainerIfNotExistsAsync(containerId, "/category");

            items = container.Items;
        }