블로그 이미지
LifeisSimple

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2011. 2. 28. 17:56 Brain Trainning/NoSQL
-- 페이지 아래쪽에 코드 셈플있음... 

Mongo Java Driver 코드 셈플... 강한 에러를 동반할 수 있으니 잘 수정해서 사용해야 합니다.


package com.Mongo.Test;

 

import com.mongodb.*;

import org.junit.Before;

import org.junit.Test;

import static org.junit.Assert.*;

 

public class MongoDBUnitTestII {

    private DBCollection customers;

 

    @Before

    public void setUp() throws Exception {

        Mongo mongo = new Mongo();

        DB db = mongo.getDB("webshop");

        customers = db.getCollection("customer");

        customers.remove(new BasicDBObject());

    }

 

    @Test

    public void shouldWorkWithMongoDB() {

        DBObject customerMaxMustermann = new BasicDBObject()

                .append("id", "4711")

                .append("name","Max Mustermann")

                .append("city","Cologne")

                .append("numberOfOrders", 3);

        customers.insert(customerMaxMustermann);

        DBObject savedCustomer = customers.findOne();

        assertNotNull(savedCustomer);

        assertEquals("4711", savedCustomer.get("id"));

    }

 

   /* {"id" : 1234, "name": "Otto Normal", city: "Berlin",#

      numberOfOrders: 4, bankData: {accountNumber : "9876543210", bankCode : "30020011", accountHolder : "Otto Normal"}*/

 

    private void insertCustomerOttoNormal() {

        Customer customer = new Customer();

        customer.setId("1234");

        customer.setName("Otto Normal");

        customer.setCity("Berlin");

        customer.setNumberOfOrders(4);

 

        BankData bankData = new BankData();

        bankData.setAccountNumber("9876543210");

        bankData.setBankCode("30020011");

        bankData.setAccountHolder("Otto Normal");

        customer.setBankData(bankData);

 

        customers.setObjectClass(Customer.class);

        customers.insert(customer);

    }

 

    @Test

    public void shouldSaveAndFindCustomers() {

        insertCustomerOttoNormal();

 

        // attention: all field names here begin with a capital letter

        DBCursor result = customers.find(new BasicDBObject("City", "Berlin"));

        assertTrue(result.hasNext());

        Customer savedCustomer = (Customer) result.next();

        assertEquals("1234", savedCustomer.getId());

        assertEquals("30020011", savedCustomer.getBankData().getBankCode());

    }

 

    @Test

    public void shouldIncrementTheNumberOfOrdersIfTheCustomerPlaceAnOrder() {

        insertCustomerOttoNormal();

 

        customers.update(new BasicDBObject("Id", "1234"),

                new BasicDBObject("$inc",

                        new BasicDBObject("NumberOfOrders", 1)));

        Customer savedCustomer = (Customer) customers

                .findOne(new BasicDBObject("NumberOfOrders", new BasicDBObject("$gt", 4)));

        assertNotNull(savedCustomer);

        assertEquals("Otto Normal", savedCustomer.getName());

        assertEquals(5, savedCustomer.getNumberOfOrders());

    }

}

 

'Brain Trainning > NoSQL' 카테고리의 다른 글

[MongoDB] 트위터 Collections...  (0) 2011.03.31
[MongoDB] Config 파일 옵션  (0) 2011.03.09
[MongoDB] MSSQL 2 MongoDB  (0) 2011.02.25
[MongoDB] Comparing MongoDB java frameworks  (0) 2011.02.23
[MongoDB] 당신의 모든 Backup  (0) 2011.01.25
posted by LifeisSimple