Package com.spaceprogram.simplejpa

Source Code of com.spaceprogram.simplejpa.DomainHelperTests

package com.spaceprogram.simplejpa;

import java.util.List;

import junit.framework.Assert;

import org.junit.Test;

import com.amazonaws.services.simpledb.AmazonSimpleDB;
import com.amazonaws.services.simpledb.model.CreateDomainRequest;
import com.amazonaws.services.simpledb.model.DeleteDomainRequest;
import com.amazonaws.services.simpledb.model.Item;
import com.amazonaws.services.simpledb.model.PutAttributesRequest;
import com.amazonaws.services.simpledb.model.ReplaceableAttribute;
import com.amazonaws.services.simpledb.model.SelectResult;

/**
* Must enable 2nd level cache to make this tests useful.
*
* User: normj
* Date: Sept 1, 2010
* Time: 12:56:00 PM
*/
public class DomainHelperTests extends BaseTestClass {

  @Test
  public void findByIdTest() {
        EntityManagerSimpleJPA em = (EntityManagerSimpleJPA)factory.createEntityManager();
       
        AmazonSimpleDB sdbClient = em.getSimpleDb();
       
        String domainName = "simplejpa-domainhelper-tests";
       
        sdbClient.createDomain(new CreateDomainRequest().withDomainName(domainName));
        try {
          Assert.assertNull(DomainHelper.findItemById(sdbClient, domainName, "noexist"));
         
          sdbClient.putAttributes(
              new PutAttributesRequest()
                .withItemName("exist")
                .withDomainName(domainName)
                .withAttributes(new ReplaceableAttribute("name", "value", true)));
         
          Assert.assertNotNull(DomainHelper.findItemById(sdbClient, domainName, "exist"));
        }
        finally {
          sdbClient.deleteDomain(new DeleteDomainRequest().withDomainName(domainName));
        }
  }
 
  @Test
  public void listAllItemsTests() {
        EntityManagerSimpleJPA em = (EntityManagerSimpleJPA)factory.createEntityManager();
       
        AmazonSimpleDB sdbClient = em.getSimpleDb();
       
        String domainName = "simplejpa-domainhelper-tests";
       
        sdbClient.createDomain(new CreateDomainRequest().withDomainName(domainName));
        try {
         
          for(int i = 0; i < 3; i++) {
              sdbClient.putAttributes(
                  new PutAttributesRequest()
                    .withItemName("thing" + i)
                    .withDomainName(domainName)
                    .withAttributes(new ReplaceableAttribute("name", "value", true)));           
          }

          List<Item> items = DomainHelper.listAllItems(sdbClient, domainName);
          Assert.assertEquals(3, items.size());
        }
        finally {
          sdbClient.deleteDomain(new DeleteDomainRequest().withDomainName(domainName));
        }
  }
 
  @Test
  public void selectItemsTests() {
        EntityManagerSimpleJPA em = (EntityManagerSimpleJPA)factory.createEntityManager();
       
        AmazonSimpleDB sdbClient = em.getSimpleDb();
       
        String domainName = "simplejpa-domainhelper-tests";
       
        sdbClient.createDomain(new CreateDomainRequest().withDomainName(domainName));
        try {
          for(int i = 0; i < 10; i++) {
              sdbClient.putAttributes(
                  new PutAttributesRequest()
                    .withItemName("thing" + i)
                    .withDomainName(domainName)
                    .withAttributes(new ReplaceableAttribute("name", "value", true)));           
          }
         
          SelectResult result = DomainHelper.selectItems(sdbClient, String.format("select * from `%s` LIMIT 3", domainName), null);
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, String.format("select * from `%s` LIMIT 3", domainName), result.getNextToken());
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, String.format("select * from `%s` LIMIT 3", domainName), result.getNextToken());
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, String.format("select * from `%s` LIMIT 3", domainName), result.getNextToken());
          Assert.assertEquals(1, result.getItems().size());
          Assert.assertNull(result.getNextToken());
        }
        finally {
          sdbClient.deleteDomain(new DeleteDomainRequest().withDomainName(domainName));
        }
  } 
 
  @Test
  public void selectItemsWithWhereTests() {
        EntityManagerSimpleJPA em = (EntityManagerSimpleJPA)factory.createEntityManager();
       
        AmazonSimpleDB sdbClient = em.getSimpleDb();
       
        String domainName = "simplejpa-domainhelper-tests";
       
        sdbClient.createDomain(new CreateDomainRequest().withDomainName(domainName));
        try {
          for(int i = 0; i < 10; i++) {
              sdbClient.putAttributes(
                  new PutAttributesRequest()
                    .withItemName("thing" + i)                   
                    .withDomainName(domainName)
                    .withAttributes(new ReplaceableAttribute("name", "value", true)));           
          }
         
          SelectResult result = DomainHelper.selectItems(sdbClient, domainName, "name = 'value' LIMIT 3", null);
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, domainName, "name = 'value' LIMIT 3", result.getNextToken());
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, domainName, "name = 'value' LIMIT 3", result.getNextToken());
          Assert.assertEquals(3, result.getItems().size());
          Assert.assertNotNull(result.getNextToken());

          result = DomainHelper.selectItems(sdbClient, domainName, "name = 'value' LIMIT 3", result.getNextToken());
          Assert.assertEquals(1, result.getItems().size());
          Assert.assertNull(result.getNextToken());
        }
        finally {
          sdbClient.deleteDomain(new DeleteDomainRequest().withDomainName(domainName));
        }
  }   
}
TOP

Related Classes of com.spaceprogram.simplejpa.DomainHelperTests

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.