/driver/src/test/acceptance/com/mongodb/acceptancetest/core/ClientAcceptanceTest.java
http://github.com/mongodb/mongo-java-driver · Java · 106 lines · 66 code · 18 blank · 22 comment · 2 complexity · ded06498ac38968327a7c164cf05d4fe MD5 · raw file
- /*
- * Copyright (c) 2015 MongoDB, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.mongodb.acceptancetest.core;
- import com.mongodb.client.DatabaseTestCase;
- import com.mongodb.client.MongoDatabase;
- import org.bson.Document;
- import org.hamcrest.BaseMatcher;
- import org.hamcrest.Description;
- import org.junit.Test;
- import java.util.ArrayList;
- import java.util.List;
- import static org.hamcrest.CoreMatchers.hasItem;
- import static org.hamcrest.CoreMatchers.hasItems;
- import static org.hamcrest.CoreMatchers.not;
- import static org.hamcrest.core.Is.is;
- import static org.junit.Assert.assertThat;
- /**
- * Documents the basic functionality available for the MongoClient via the Java driver.
- */
- public class ClientAcceptanceTest extends DatabaseTestCase {
- @Test
- public void shouldListDatabaseNamesFromDatabase() {
- database.createCollection(getCollectionName());
- List<String> names = client.listDatabaseNames().into(new ArrayList<String>());
- assertThat(names.contains(getDatabaseName()), is(true));
- }
- @Test
- public void shouldBeAbleToListAllTheDatabaseNamesAvailable() {
- MongoDatabase firstDatabase = client.getDatabase("FirstNewDatabase");
- MongoDatabase secondDatabase = client.getDatabase("SecondNewDatabase");
- MongoDatabase otherDatabase = client.getDatabase("DatabaseThatDoesNotExistYet");
- try {
- // given
- firstDatabase.getCollection("coll").insertOne(new Document("aDoc", "to force database creation"));
- secondDatabase.getCollection("coll").insertOne(new Document("aDoc", "to force database creation"));
- //when
- List<String> databaseNames = client.listDatabaseNames().into(new ArrayList<String>());
- //then
- assertThat(databaseNames, hasItems(firstDatabase.getName(), secondDatabase.getName()));
- assertThat(databaseNames, not(hasItem(otherDatabase.getName())));
- } finally {
- //tear down
- firstDatabase.drop();
- secondDatabase.drop();
- }
- }
- @Test
- public void shouldListDatabase() {
- List<Document> databases = client.listDatabases().into(new ArrayList<Document>());
- database.createCollection(getCollectionName());
- databases = client.listDatabases().into(new ArrayList<Document>());
- assertThat(databases, new DatabaseNameMatcher(getDatabaseName()));
- }
- private static final class DatabaseNameMatcher extends BaseMatcher<List<Document>> {
- private final String name;
- DatabaseNameMatcher(final String name) {
- this.name = name;
- }
- @Override
- @SuppressWarnings("unchecked")
- public boolean matches(final Object item) {
- List<Document> databases = (List<Document>) item;
- for (Document cur : databases) {
- if (cur.get("name").equals(name)) {
- return true;
- }
- }
- return false;
- }
- @Override
- public void describeTo(final Description description) {
- description.appendText("Document containing a name of " + name);
- }
- }
- }