Skip to content

Instantly share code, notes, and snippets.

View trishagee's full-sized avatar

Trisha Gee trishagee

View GitHub Profile
@trishagee
trishagee / gist:3938248
Created October 23, 2012 11:15
Example of a MongoDB-shaped document
{
name: "Trisha",
twitter: "@trisha_gee",
address: [
{ line1: "not telling",
line2: "no really",
town: "London" }
]
}
@trishagee
trishagee / gist:3938260
Created October 23, 2012 11:21
Example column family
ID: 63537
Name: Trisha
Twitter: @trisha_gee
Location: London
@trishagee
trishagee / JMockEncodeListTest.java
Last active December 18, 2015 04:58
Example of a JMock test for mocking
@Test
public void shouldEncodeListOfStrings() {
final List<String> stringList = asList("Uno", "Dos", "Tres");
context.checking(new Expectations() {{
oneOf(bsonWriter).writeStartArray();
oneOf(bsonWriter).writeString("Uno");
oneOf(bsonWriter).writeString("Dos");
oneOf(bsonWriter).writeString("Tres");
oneOf(bsonWriter).writeEndArray();
@trishagee
trishagee / IterableCodecTest.java
Last active December 18, 2015 04:58
All the setup required for a simple JMock test
public class IterableCodecTest {
//CHECKSTYLE:OFF
@Rule
public final JUnitRuleMockery context = new JUnitRuleMockery();
//CHECKSTYLE:ON
// Mocks
private BSONWriter bsonWriter;
// Under test
private final IterableCodec iterableCodec = new IterableCodec(Codecs.createDefault());
@trishagee
trishagee / IterableCodecSpecification.groovy
Last active December 18, 2015 04:59
Test for encoding lists in Spock
class IterableCodecSpecification extends Specification {
private BSONWriter bsonWriter = Mock();
@Subject
private final IterableCodec iterableCodec = new IterableCodec(Codecs.createDefault());
public void 'should encode list of strings'() {
setup:
List<String> stringList = ['Uno', 'Dos', 'Tres'];
class DBCollectionSpecification extends Specification {
private final Mongo mongo = Mock()
private final ServerSelectingSession session = Mock()
private final DB database = new DB(mongo, 'myDatabase', new DocumentCodec())
@Subject
private final DBCollection collection = new DBCollection('collectionName', database, new DocumentCodec())
def setup() {
private static class TestAsyncConnectionFactory implements AsyncConnectionFactory {
@Override
public AsyncConnection create(final ServerAddress serverAddress) {
return new AsyncConnection() {
@Override
public void sendMessage(final List<ByteBuf> byteBuffers, final SingleResultCallback<Void> callback) {
throw new UnsupportedOperationException();
}
@Override
class MongoClientURISpecification extends Specification {
def 'should correctly parse different write concerns'() {
expect:
uri.getOptions().getWriteConcern() == writeConcern;
where:
uri | writeConcern
new MongoClientURI('mongodb://localhost') | WriteConcern.ACKNOWLEDGED
new MongoClientURI('mongodb://localhost/?safe=true') | WriteConcern.ACKNOWLEDGED
public class MongoClientURITest {
@Test()
public void testWriteConcern() {
MongoClientURI uri = new MongoClientURI("mongodb://localhost");
assertEquals(WriteConcern.ACKNOWLEDGED, uri.getOptions().getWriteConcern());
uri = new MongoClientURI("mongodb://localhost/?wTimeout=5");
assertEquals(new WriteConcern(1, 5, false, false), uri.getOptions().getWriteConcern());
@trishagee
trishagee / pom.xml
Last active December 20, 2015 19:29
POM file for using the 3.0 Java driver for MongoDB.
<project>
...
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
...