Skip to content

Commit 809ba10

Browse files
author
William Delanoue
committed
closes #272: createCollection with command
1 parent 443661f commit 809ba10

File tree

2 files changed

+46
-35
lines changed

2 files changed

+46
-35
lines changed

src/main/java/com/github/fakemongo/FongoConnection.java

+36-35
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,5 @@
11
package com.github.fakemongo;
22

3-
import static com.mongodb.FongoDBCollection.bsonDocument;
4-
import static com.mongodb.FongoDBCollection.bsonDocuments;
5-
import static com.mongodb.FongoDBCollection.dbObject;
6-
import static com.mongodb.FongoDBCollection.dbObjects;
7-
import static com.mongodb.FongoDBCollection.decode;
8-
import static com.mongodb.FongoDBCollection.decoderContext;
9-
import static com.mongodb.bulk.WriteRequest.Type.INSERT;
10-
import static com.mongodb.bulk.WriteRequest.Type.REPLACE;
11-
import static java.util.Arrays.asList;
12-
13-
import java.util.ArrayList;
14-
import java.util.Collections;
15-
import java.util.Iterator;
16-
import java.util.List;
17-
import java.util.Map;
18-
import java.util.concurrent.TimeUnit;
19-
20-
import org.bson.BsonArray;
21-
import org.bson.BsonBoolean;
22-
import org.bson.BsonDocument;
23-
import org.bson.BsonDocumentReader;
24-
import org.bson.BsonDouble;
25-
import org.bson.BsonInt32;
26-
import org.bson.BsonInt64;
27-
import org.bson.BsonNull;
28-
import org.bson.BsonString;
29-
import org.bson.BsonValue;
30-
import org.bson.Document;
31-
import org.bson.FieldNameValidator;
32-
import org.bson.codecs.Codec;
33-
import org.bson.codecs.Decoder;
34-
import org.slf4j.Logger;
35-
import org.slf4j.LoggerFactory;
36-
373
import com.mongodb.AggregationOutput;
384
import com.mongodb.BasicDBObject;
395
import com.mongodb.BulkUpdateRequestBuilder;
@@ -45,6 +11,12 @@
4511
import com.mongodb.DBObject;
4612
import com.mongodb.FongoDB;
4713
import com.mongodb.FongoDBCollection;
14+
import static com.mongodb.FongoDBCollection.bsonDocument;
15+
import static com.mongodb.FongoDBCollection.bsonDocuments;
16+
import static com.mongodb.FongoDBCollection.dbObject;
17+
import static com.mongodb.FongoDBCollection.dbObjects;
18+
import static com.mongodb.FongoDBCollection.decode;
19+
import static com.mongodb.FongoDBCollection.decoderContext;
4820
import com.mongodb.MongoClient;
4921
import com.mongodb.MongoCommandException;
5022
import com.mongodb.MongoNamespace;
@@ -60,6 +32,8 @@
6032
import com.mongodb.bulk.UpdateRequest;
6133
import com.mongodb.bulk.WriteConcernError;
6234
import com.mongodb.bulk.WriteRequest;
35+
import static com.mongodb.bulk.WriteRequest.Type.INSERT;
36+
import static com.mongodb.bulk.WriteRequest.Type.REPLACE;
6337
import com.mongodb.connection.BulkWriteBatchCombiner;
6438
import com.mongodb.connection.ClusterId;
6539
import com.mongodb.connection.Connection;
@@ -72,6 +46,29 @@
7246
import com.mongodb.internal.validator.UpdateFieldNameValidator;
7347
import com.mongodb.operation.FongoBsonArrayWrapper;
7448
import com.mongodb.util.JSON;
49+
import java.util.ArrayList;
50+
import static java.util.Arrays.asList;
51+
import java.util.Collections;
52+
import java.util.Iterator;
53+
import java.util.List;
54+
import java.util.Map;
55+
import java.util.concurrent.TimeUnit;
56+
import org.bson.BsonArray;
57+
import org.bson.BsonBoolean;
58+
import org.bson.BsonDocument;
59+
import org.bson.BsonDocumentReader;
60+
import org.bson.BsonDouble;
61+
import org.bson.BsonInt32;
62+
import org.bson.BsonInt64;
63+
import org.bson.BsonNull;
64+
import org.bson.BsonString;
65+
import org.bson.BsonValue;
66+
import org.bson.Document;
67+
import org.bson.FieldNameValidator;
68+
import org.bson.codecs.Codec;
69+
import org.bson.codecs.Decoder;
70+
import org.slf4j.Logger;
71+
import org.slf4j.LoggerFactory;
7572

7673
/**
7774
*
@@ -388,7 +385,11 @@ private int delete(DBCollection collection, WriteConcern writeConcern, List<Dele
388385
public <T> T command(String database, BsonDocument command, boolean slaveOk, FieldNameValidator fieldNameValidator, Decoder<T> commandResultDecoder) {
389386
final DB db = fongo.getDB(database);
390387
LOG.debug("command() database:{}, command:{}", database, command);
391-
if (command.containsKey("count")) {
388+
if (command.containsKey("create")) {
389+
final FongoDBCollection dbCollection = (FongoDBCollection) db.getCollection(command.get("create").asString().getValue());
390+
391+
return (T) new BsonDocument("ok", BsonBoolean.TRUE);
392+
} else if (command.containsKey("count")) {
392393
final FongoDBCollection dbCollection = (FongoDBCollection) db.getCollection(command.get("count").asString().getValue());
393394
final DBObject query = dbObject(command, "query");
394395
final long limit = command.containsKey("limit") ? command.getInt64("limit").longValue() : -1;

src/test/java/com/github/fakemongo/AbstractFongoV3Test.java

+10
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,16 @@ public void should_ping_fongo() {
11291129
Assertions.assertThat(ping.getDouble("ok")).isEqualTo(1.0);
11301130
}
11311131

1132+
@Test
1133+
public void should_command_create_collection() {
1134+
// Given
1135+
// When
1136+
fongoRule.getDatabase().createCollection("hello");
1137+
1138+
// Then
1139+
Assertions.assertThat(fongoRule.getDatabase().getCollection("hello")).isNotNull();
1140+
}
1141+
11321142
@Test
11331143
public void shouldFindOneDocumentWithoutTheOptionalFieldWithNoIndex() {
11341144
// Given

0 commit comments

Comments
 (0)