Package com.springsource.insight.plugin.mongodb

Source Code of com.springsource.insight.plugin.mongodb.MongoCollectionOperationCollectionAspectTest

/**
* Copyright (c) 2009-2011 VMware, Inc. All Rights Reserved.
*
* 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.springsource.insight.plugin.mongodb;

import static org.mockito.Mockito.mock;

import org.junit.Ignore;
import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCollectionDummy;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.WriteConcern;
import com.springsource.insight.collection.OperationCollectionAspectSupport;
import com.springsource.insight.collection.test.OperationCollectionAspectTestSupport;
import com.springsource.insight.intercept.operation.Operation;

/**
*/
public class MongoCollectionOperationCollectionAspectTest
        extends OperationCollectionAspectTestSupport {
    public MongoCollectionOperationCollectionAspectTest() {
        super();
    }

    //  execution(WriteResult DBCollection.insert(DBObject[], WriteConcern));
    @Test
    public void testInsert() {
        getMeACollection().insert(new DBObject[0], null);
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(WriteResult DBCollection.update(DBObject, DBObject, boolean, boolean));
    @Test
    public void testUpdate() {
        getMeACollection().update(null, null, true, true);
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(WriteResult DBCollection.remove(DBObject, WriteConcern));
    @Test
    public void testRemove() {
        getMeACollection().remove(null, null);
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(WriteResult DBCollection.save(DBObject, WriteConcern));
    @Test
    @Ignore("This particular method is very difficult to test due to final and various other interactions in the DBCollection class")
    public void testSave() {
        ((DBCollectionDummy) getMeACollection()).save(new BasicDBObject("whoa", "there"), new WriteConcern(), "blah");
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(DBCursor DBCollection.__find(DBObject, DBObject, int, int, int, int, ReadPreference));
    @Test
    public void testFind() {
        getMeACollection().find(new BasicDBObject("whoa", "there"), new BasicDBObject("whoa", "there"));
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(void DBCollection.createIndex(DBObject, DBObject));
    @Test
    public void testCreateIndex() {
        getMeACollection().createIndex(new BasicDBObject("hi", "there"));
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(long DBCollection.getCount(DBObject, DBObject, long, long));
    @Test
    public void testGetCount() {
        getMeACollection().getCount(new BasicDBObject("hi", "there"), new BasicDBObject("blah", "blah"), 1L, 2L);
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(DBObject DBCollection.group(GroupCommand));
    @Test
    public void testGroup() {
        getMeACollection().group(new BasicDBObject("hi", "there"), new BasicDBObject("blah", "blah"), new BasicDBObject("blah", "blah"), "what do you know");
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(List DBCollection.distinct(String,DBObject));
    @Test
    public void testDistinct() {
        getMeACollection().distinct("what do you know");
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(MapReduceOutput DBCollection.mapReduce(..));
    @Test
    public void testMapReduce() {
        getMeACollection().mapReduce(new BasicDBObject("map-reduce", "smoosh"));
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    //  execution(void DBCollection.dropIndexes(..));
    @Test
    public void testDropIndexes() {
        getMeACollection().dropIndexes("smoosh");
        Operation op = getLastEntered();
        standardAsserts(op);
    }

    @Override
    public OperationCollectionAspectSupport getAspect() {
        return MongoCollectionOperationCollectionAspect.aspectOf();
    }

    public void standardAsserts(Operation op) {
        assertEquals(MongoDBCollectionExternalResourceAnalyzer.TYPE, op.getType());
        assertEquals("my_super_collection.hello", op.get("collection"));
    }

    private DBCollection getMeACollection() {
        Mongo mongo = mock(Mongo.class);
        DB db = new DBDummy(mongo, "my_super_collection");

        DBCollection col = new DBCollectionDummy(db, "hello");
        return col;
    }
}
TOP

Related Classes of com.springsource.insight.plugin.mongodb.MongoCollectionOperationCollectionAspectTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.