Package org.infinispan.loaders.bdbje

Source Code of org.infinispan.loaders.bdbje.ModificationsTransactionWorkerTest

package org.infinispan.loaders.bdbje;

import static org.easymock.classextension.EasyMock.*;
import org.infinispan.container.entries.InternalCacheEntry;
import org.infinispan.container.entries.InternalEntryFactory;
import org.infinispan.loaders.CacheStore;
import org.infinispan.loaders.modifications.Clear;
import org.infinispan.loaders.modifications.Modification;
import org.infinispan.loaders.modifications.PurgeExpired;
import org.infinispan.loaders.modifications.Remove;
import org.infinispan.loaders.modifications.Store;
import org.testng.annotations.Test;

import java.util.Collections;

/**
* Unit tests that cover {@link  ModificationsTransactionWorker }
*
* @author Adrian Cole
* @version $Id: ModificationsTransactionWorkerTest.java 209 2009-05-05 15:26:50Z manik.surtani@jboss.com $
* @since 4.0
*/
@Test(groups = "unit", enabled = true, testName = "loaders.bdbje.ModificationsTransactionWorkerTest")
public class ModificationsTransactionWorkerTest {

   @Test
   public void testDoWorkOnStore() throws Exception {
      CacheStore cs = createMock(CacheStore.class);
      Store store = createMock(Store.class);
      InternalCacheEntry entry = InternalEntryFactory.create("1", "2");
      expect(store.getType()).andReturn(Modification.Type.STORE);
      expect(store.getStoredEntry()).andReturn(entry);
      cs.store(entry);
      replay(cs);
      replay(store);

      ModificationsTransactionWorker worker =
            new ModificationsTransactionWorker(cs,
                                               Collections.singletonList(store));
      worker.doWork();
      verify(cs);
      verify(store);

   }

   @Test
   public void testDoWorkOnRemove() throws Exception {
      CacheStore cs = createMock(CacheStore.class);
      Remove store = createMock(Remove.class);
      expect(store.getType()).andReturn(Modification.Type.REMOVE);
      expect(store.getKey()).andReturn("1");
      expect(cs.remove("1")).andReturn(true);
      replay(cs);
      replay(store);

      ModificationsTransactionWorker worker =
            new ModificationsTransactionWorker(cs,
                                               Collections.singletonList(store));
      worker.doWork();
      verify(cs);
      verify(store);

   }

   @Test
   public void testDoWorkOnClear() throws Exception {
      CacheStore cs = createMock(CacheStore.class);
      Clear clear = createMock(Clear.class);
      expect(clear.getType()).andReturn(Modification.Type.CLEAR);
      cs.clear();
      replay(cs);
      replay(clear);

      ModificationsTransactionWorker worker =
            new ModificationsTransactionWorker(cs,
                                               Collections.singletonList(clear));
      worker.doWork();
      verify(cs);
      verify(clear);
   }

   @Test
   public void testDoWorkOnPurgeExpired() throws Exception {
      CacheStore cs = createMock(CacheStore.class);
      PurgeExpired purge = createMock(PurgeExpired.class);
      expect(purge.getType()).andReturn(Modification.Type.PURGE_EXPIRED);
      cs.purgeExpired();
      replay(cs);
      replay(purge);

      ModificationsTransactionWorker worker =
            new ModificationsTransactionWorker(cs,
                                               Collections.singletonList(purge));
      worker.doWork();
      verify(cs);
      verify(purge);
   }


//   case REMOVE:
//      Remove r = (Remove) modification;
//      cs.remove(r.getKey());
//      break;
//   default:
//      throw new IllegalArgumentException("Unknown modification type " + modification.getType());

}
TOP

Related Classes of org.infinispan.loaders.bdbje.ModificationsTransactionWorkerTest

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.