package com.opower.updater; import com.opower.updater.admin.loader.ResourceUpdateLoader; import com.opower.updater.admin.loader.UpdateLoader; import org.junit.Before; import org.kiji.schema.KijiTable; import org.kiji.schema.KijiURI; import org.kiji.schema.layout.KijiTableLayout; import org.kiji.schema.tools.KijiToolTest; import java.io.IOException; import java.util.concurrent.TimeUnit; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; /** * Base test class for updater tools. * * @author felix.trepanier */ public class UpdaterToolTest extends KijiToolTest { protected static final String TABLE_NAME = "test"; protected KijiURI tableURI; protected UpdateLoader loader = ResourceUpdateLoader.DEFAULT; protected UpdaterLocker fakeUpdaterLocker; @Before public void setup() throws Exception { fakeUpdaterLocker = new FakeUpaterLocker(); tableURI = KijiURI.newBuilder(getKiji().getURI()).withTableName(TABLE_NAME).build(); } protected void assertTestTableComplete() throws IOException { KijiTable table = getKiji().openTable("test"); KijiTableLayout.LocalityGroupLayout.FamilyLayout family = table.getLayout().getFamilies().iterator().next(); assertEquals("test", family.getName()); assertEquals(3, family.getColumns().size()); assertTrue(family.getColumnMap().containsKey("stuff")); assertTrue(family.getColumnMap().containsKey("moreStuff")); assertTrue(family.getColumnMap().containsKey("yetAnother")); } protected void checkLastPrintedLineIsAnError() { assertTrue(mToolOutputLines[mToolOutputLines.length - 1].startsWith("Error")); } private static class FakeUpaterLocker implements UpdaterLocker { @Override public AcquiredLock acquireLock(KijiURI kijiURI, int maxWaitTime, TimeUnit timeUnit) throws LockNotAcquiredException { return new AcquiredLock() { @Override public void release() throws Exception { } }; } } }