public async Task CreateSingleIndexTest() { await _documentServer.DropDatabase(_workContext, _dbName); IDocumentDatabase db = _documentServer.GetDatabase(_workContext, _dbName); await db.CreateCollection(_workContext, _collectionName); IDocumentCollection <TestDocument> collection = db.GetCollection <TestDocument>(_collectionName); IEnumerable <IndexDetailV1> list = await collection.Index.ListIndexes(_workContext); list.Should().NotBeNull(); list.Count().Should().Be(1); list.First().Name.Should().Be("_id_"); var model = new CollectionIndex { Name = "TestIndex_1", Unique = true, Sparse = false, Keys = new List <IndexKey> { new IndexKey { FieldName = "FirstName" }, new IndexKey { FieldName = "Last Name" }, } }; await collection.Index.CreateIndex(_workContext, model); list = await collection.Index.ListIndexes(_workContext); list.Should().NotBeNull(); list.Count().Should().Be(2); list.First().Name.Should().Be("_id_"); IndexDetailV1 detail = list.Skip(1).First(); detail.Name.Should().Be(model.Name); detail.Unique.Should().Be(model.Unique); detail.Sparse.Should().Be(model.Sparse); detail.Keys.Count.Should().Be(model.Keys.Count); detail.Keys[0].FieldName.Should().Be(model.Keys[0].FieldName); detail.Keys[0].Descending.Should().Be(model.Keys[0].Descending); detail.Keys[1].FieldName.Should().Be(model.Keys[1].FieldName); detail.Keys[1].Descending.Should().Be(model.Keys[1].Descending); await db.DropCollection(_workContext, _collectionName); await _documentServer.DropDatabase(_workContext, _dbName); }
public async Task CreateAndRemoveDatabaseTest() { const int count = 10; IEnumerable <DatabaseDetailV1> result = await _documentServer.ListDatabases(_workContext); result.Should().NotBeNull(); result.Count().Should().BeGreaterThan(1); IList <string> dbList = Enumerable.Range(0, count).Select(x => $"Database_{x}").ToList(); IEnumerable <string> dbToDelete = result.Where(x => dbList.Contains(x.Name)).Select(x => x.Name).ToList(); foreach (var dbName in dbToDelete) { await _documentServer.DropDatabase(_workContext, dbName); } IEnumerable <DatabaseDetailV1> baseResult = await _documentServer.ListDatabases(_workContext); foreach (var dbName in dbList) { IDocumentDatabase db = _documentServer.GetDatabase(_workContext, dbName); await db.CreateCollection(_workContext, "TestCollection"); } IEnumerable <DatabaseDetailV1> afterGetDatbase = await _documentServer.ListDatabases(_workContext); IEnumerable <DatabaseDetailV1> afterFilter = afterGetDatbase.Where(x => !baseResult.Any(y => y.Name.Equals(x.Name, StringComparison.OrdinalIgnoreCase))); afterFilter.Count().Should().Be(count); afterFilter .OrderBy(x => x.Name) .Zip(dbList.OrderBy(x => x), (f, s) => new { F = f, S = s }) .All(x => x.F.Name == x.S) .Should().BeTrue(); foreach (var dbName in dbList) { await _documentServer.DropDatabase(_workContext, dbName); } IEnumerable <DatabaseDetailV1> afterDelete = await _documentServer.ListDatabases(_workContext); afterDelete.Count().Should().Be(baseResult.Count()); }
public async Task CreateAndRemoveCollectionsTest() { const int count = 10; const string dbName = "TestDatabase_01"; IList <string> collectionList = Enumerable.Range(0, count).Select(x => $"Collection_{x}").ToList(); await _documentServer.DropDatabase(_workContext, dbName); IDocumentDatabase db = _documentServer.GetDatabase(_workContext, dbName); IEnumerable <CollectionDetailV1> collections = await db.ListCollections(_workContext); collections.Should().NotBeNull(); collections.Count().Should().Be(0); foreach (var collectionName in collectionList) { await db.CreateCollection(_workContext, collectionName); } collections = await db.ListCollections(_workContext); collections.Should().NotBeNull(); collections.Count().Should().Be(count); collections .OrderBy(x => x.Name) .Zip(collectionList.OrderBy(x => x), (f, s) => new { F = f, S = s }) .All(x => x.F.Name == x.S) .Should().BeTrue(); foreach (var collectionName in collectionList) { await db.DropCollection(_workContext, collectionName); } collections = await db.ListCollections(_workContext); collections.Should().NotBeNull(); collections.Count().Should().Be(0); await _documentServer.DropDatabase(_workContext, dbName); }