@Test(groups = "unit", expectedExceptions = RuntimeException.class) public void getMetadatasException() throws RemoteException { EasyMock.expect( authorizationProvider.canDownloadAll( EasyMock.aryEq(new String[] {fileId, fileId2}), EasyMock.eq(gridId))) .andReturn(false); mockObjects.replay(); service.getFileMetadata(Lists.newArrayList(fileId, fileId2), gridId); }
@Test public void testStartInvalidDBSchema() throws Exception { EasyMock.expect(engineController.isEngineRunning()).andReturn(false); serverConfigurator.configure(); EasyMock.expect(embeddedDatabaseController.shouldUse()).andReturn(true); EasyMock.expect(embeddedDatabaseController.startBuiltInDB()).andReturn(true); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq( new String[] { System.getProperty("java.home") + "/bin/java", "-cp", serverHome + "/lib/ant-launcher-1.7.1.jar", "-Dserver.home=" + serverHome, "-Dant.home=" + serverHome, "-Dtomcat.home=" + engineHome + "/hq-server", "-Dlog4j.configuration=" + new File(serverHome + "/conf/log4j.xml").toURI().toURL().toString(), "org.apache.tools.ant.launch.Launcher", "-q", "-lib", serverHome + "/lib", "-listener", "org.apache.tools.ant.listener.Log4jListener", "-buildfile", serverHome + "/data/db-upgrade.xml", "upgrade" }), EasyMock.eq(serverHome), EasyMock.eq(true), EasyMock.eq(HQServer.DB_UPGRADE_PROCESS_TIMEOUT))) .andReturn(0); EasyMock.expect(dataSource.getConnection()).andReturn(connection); EasyMock.expect(connection.createStatement()).andReturn(statement); EasyMock.expect( statement.executeQuery( "select propvalue from EAM_CONFIG_PROPS " + "WHERE propkey = '" + HQConstants.SchemaVersion + "'")) .andReturn(resultSet); EasyMock.expect(resultSet.next()).andReturn(true); EasyMock.expect(resultSet.getString("propvalue")).andReturn(HQConstants.SCHEMA_MOD_IN_PROGRESS); connection.close(); resultSet.close(); statement.close(); replay(); server.start(); verify(); // Ensure that the embeddedDatabaseController mock expects the stopBuiltInDb during JVM // shutdown. this.teardownCallback = shutdownHookConfiguratorCallback; }
@Test public void testStartErrorVerifyingSchema() throws Exception { EasyMock.expect(engineController.isEngineRunning()).andReturn(false); serverConfigurator.configure(); EasyMock.expect(embeddedDatabaseController.shouldUse()).andReturn(true); EasyMock.expect(embeddedDatabaseController.startBuiltInDB()).andReturn(true); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq( new String[] { System.getProperty("java.home") + "/bin/java", "-cp", serverHome + "/lib/ant-launcher-1.7.1.jar", "-Dserver.home=" + serverHome, "-Dant.home=" + serverHome, "-Dtomcat.home=" + engineHome + "/hq-server", "-Dlog4j.configuration=" + new File(serverHome + "/conf/log4j.xml").toURI().toURL().toString(), "org.apache.tools.ant.launch.Launcher", "-q", "-lib", serverHome + "/lib", "-listener", "org.apache.tools.ant.listener.Log4jListener", "-buildfile", serverHome + "/data/db-upgrade.xml", "upgrade" }), EasyMock.eq(serverHome), EasyMock.eq(true), EasyMock.eq(HQServer.DB_UPGRADE_PROCESS_TIMEOUT))) .andReturn(0); EasyMock.expect(dataSource.getConnection()).andThrow(new SQLException(EXPECTED_EXCEPTION_MSG)); /*Properties testProps = new Properties(); testProps.put("server.java.opts", "-XX:MaxPermSize=192m -Xmx512m -Xms512m -XX:+HeapDumpOnOutOfMemoryError"); testProps.put("server.webapp.port", "7080"); final List<String> expectedOpts = new ArrayList<String>(); expectedOpts.add("-XX:MaxPermSize=192m"); expectedOpts.add("-Xmx512m"); expectedOpts.add("-Xms512m"); expectedOpts.add("-XX:+HeapDumpOnOutOfMemoryError"); expectedOpts.add("-Dserver.home=" + serverHome); EasyMock.expect(serverConfigurator.getServerProps()).andReturn(testProps); org.easymock.classextension.EasyMock.expect(osInfo.getName()).andReturn("Mac OS X"); EasyMock.expect(engineController.start(expectedOpts)).andReturn(0);*/ replay(); server.start(); verify(); // Ensure that the embeddedDatabaseController mock expects the stopBuiltInDb during JVM // shutdown. this.teardownCallback = shutdownHookConfiguratorCallback; }
@Test(groups = "unit") public void getMetadatas() { EasyMock.expect( authorizationProvider.canDownloadAll( EasyMock.aryEq(new String[] {fileId, fileId2}), EasyMock.eq(gridId))) .andReturn(true); EasyMock.expect(accessProvider.getFileMetadata(fileId)).andReturn(new FileMetadata(13L, 12L)); EasyMock.expect(accessProvider.getFileMetadata(fileId2)).andReturn(new FileMetadata(14L, 11L)); mockObjects.replay(); final List<FileMetadata> metadatas = service.getFileMetadata(Lists.newArrayList(fileId, fileId2), gridId); assert metadatas.get(0).getLength() == 12L; assert metadatas.get(1).getLength() == 11L; }
// @Test public void testStopErrorDeterminingIfStopped() throws Exception { EasyMock.expect(processManager.getPidFromPidFile(serverHome + "/hqdb/data/postmaster.pid")) .andReturn(123l); EasyMock.expect(osInfo.getName()).andReturn("Mac OS X"); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq(new String[] {serverHome + "/bin/db-stop.sh"}), EasyMock.eq(serverHome), EasyMock.eq(false), EasyMock.eq(PostgresEmbeddedDatabaseController.DB_PROCESS_TIMEOUT))) .andReturn(0); EasyMock.expect(processManager.isPortInUse(5432l, 1)).andThrow(new NullPointerException()); replay(); boolean dbStopped = embeddedDBController.stopBuiltInDB(); verify(); assertFalse(dbStopped); }
@Test public void testStopOnWindows() throws Exception { EasyMock.expect(processManager.getPidFromPidFile(serverHome + "/hqdb/data/postmaster.pid")) .andReturn(1l); EasyMock.expect(osInfo.getName()).andReturn("Win32"); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq(new String[] {serverHome + "/bin/db-stop.bat"}), EasyMock.eq(serverHome), EasyMock.eq(false), EasyMock.eq(PostgresEmbeddedDatabaseController.DB_PROCESS_TIMEOUT))) .andReturn(0); replay(); boolean dbStopped = embeddedDBController.stopBuiltInDB(); verify(); assertTrue(dbStopped); }
@Test public void testStartPortNotBound() throws Exception { EasyMock.expect(processManager.getPidFromPidFile(serverHome + "/hqdb/data/postmaster.pid")) .andReturn(-1l); EasyMock.expect(osInfo.getName()).andReturn("Mac OS X"); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq(new String[] {serverHome + "/bin/db-start.sh"}), EasyMock.eq(serverHome), EasyMock.eq(false), EasyMock.eq(PostgresEmbeddedDatabaseController.DB_PROCESS_TIMEOUT))) .andReturn(0); EasyMock.expect(processManager.isPortInUse(5432l, 10)).andReturn(false); replay(); boolean dbStarted = embeddedDBController.startBuiltInDB(); verify(); assertFalse(dbStarted); }
@Test(groups = "unit") public void createQuantificationTraining() { final ITraqQuantitationTrainingService service = EasyMock.createMock(ITraqQuantitationTrainingService.class); getDescription() .setRunIdList( IdList.forIterable( Lists.newArrayList(UUID.randomUUID().toString(), UUID.randomUUID().toString()))); service.createQuantitationTraining( matchId(), matchDestinationId(), captureObject(), EasyMock.eq(getDescription().getReportFileId()), EasyMock.aryEq(getDescription().getRunIdList().toList().toArray(new String[2])), EasyMock.eq(getDescription().getOutputFileId())); returnInitializedObject(); EasyMock.replay(service); runAndVerify( new CreateITraqQuantitationTrainingActivityFactoryImpl(service, getFactorySupport())); EasyMock.verify(service); }
/** * Expects a long array that is equal to the given array, i.e. it has to have the same length, and * each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final long[] aryEq(long[] value) { return EasyMock.aryEq(value); }
/** * test different supplementers and removed supplementers * * @throws Exception */ public void testSupplementerRegistryWithDifferentRemovedSupplementers() throws Exception { Hashtable headers = new Hashtable(); headers.put("Eclipse-SupplementImporter", "test.import1"); EasyMock.expect(supplementerBundle1.getHeaders()).andStubReturn(headers); headers = new Hashtable(); headers.put("Eclipse-SupplementExporter", "test.export1"); EasyMock.expect(supplementerBundle2.getHeaders()).andStubReturn(headers); headers = new Hashtable(); headers.put("Eclipse-SupplementBundle", "symbolic-name-supplementedBundle*"); EasyMock.expect(supplementerBundle3.getHeaders()).andStubReturn(headers); EasyMock.expect(context.getBundles()) .andStubReturn( new Bundle[] {supplementerBundle1, supplementerBundle2, supplementerBundle3}); headers = new Hashtable(); headers.put("Import-Package", "test.import1"); headers.put("Export-Package", "test.export1"); EasyMock.expect(supplementedBundle1.getHeaders()).andStubReturn(headers); headers = new Hashtable(); EasyMock.expect(supplementedBundle2.getHeaders()).andStubReturn(headers); EasyMock.expect(supplementedBundle1.getState()).andStubReturn(Bundle.RESOLVED); EasyMock.expect(supplementedBundle2.getState()).andStubReturn(Bundle.RESOLVED); packageAdmin.refreshPackages(EasyMock.aryEq(new Bundle[] {supplementedBundle1})); packageAdmin.refreshPackages( EasyMock.aryEq(new Bundle[] {supplementedBundle1, supplementedBundle2})); IWeavingAdaptor adaptor = EasyMock.createNiceMock(IWeavingAdaptor.class); EasyMock.expect(adaptorProvider.getAdaptor(6l)).andStubReturn(adaptor); EasyMock.expect(adaptorProvider.getAdaptor(7l)).andStubReturn(adaptor); EasyMock.replay(mocks); registry.addBundle(supplementerBundle1); registry.addBundle(supplementerBundle2); registry.addBundle(supplementerBundle3); registry.addBundle(supplementedBundle1); registry.addBundle(supplementedBundle2); registry.removeBundle(supplementerBundle1); registry.removeBundle(supplementerBundle3); Supplementer[] supplementers = registry.getSupplementers(supplementedBundle1); assertEquals(1, supplementers.length); assertFalse(containsSupplementer(supplementers, supplementerBundle1)); assertTrue(containsSupplementer(supplementers, supplementerBundle2)); assertFalse(containsSupplementer(supplementers, supplementerBundle3)); supplementers = registry.getSupplementers(supplementedBundle2); assertEquals(0, supplementers.length); assertFalse(containsSupplementer(supplementers, supplementerBundle1)); assertFalse(containsSupplementer(supplementers, supplementerBundle2)); assertFalse(containsSupplementer(supplementers, supplementerBundle3)); EasyMock.verify(mocks); }
/** * Expects a double array that is equal to the given array, i.e. it has to have the same length, * and each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final double[] aryEq(double[] value) { return EasyMock.aryEq(value); }
/** * Expects a char array that is equal to the given array, i.e. it has to have the same length, and * each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final char[] aryEq(char[] value) { return EasyMock.aryEq(value); }
/** * Expects a byte array that is equal to the given array, i.e. it has to have the same length, and * each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final byte[] aryEq(byte[] value) { return EasyMock.aryEq(value); }
/** * Expects a boolean array that is equal to the given array, i.e. it has to have the same length, * and each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final boolean[] aryEq(boolean[] value) { return EasyMock.aryEq(value); }
@Test public void testGetSet() throws Exception { expectConfigure(); expectStart(Collections.EMPTY_LIST); expectStop(); // First get() against an empty store final Capture<Callback<Void>> firstGetReadToEndCallback = EasyMock.newCapture(); storeLog.readToEnd(EasyMock.capture(firstGetReadToEndCallback)); PowerMock.expectLastCall() .andAnswer( new IAnswer<Object>() { @Override public Object answer() throws Throwable { firstGetReadToEndCallback.getValue().onCompletion(null, null); return null; } }); // Set offsets Capture<org.apache.kafka.clients.producer.Callback> callback0 = EasyMock.newCapture(); storeLog.send( EasyMock.aryEq(TP0_KEY.array()), EasyMock.aryEq(TP0_VALUE.array()), EasyMock.capture(callback0)); PowerMock.expectLastCall(); Capture<org.apache.kafka.clients.producer.Callback> callback1 = EasyMock.newCapture(); storeLog.send( EasyMock.aryEq(TP1_KEY.array()), EasyMock.aryEq(TP1_VALUE.array()), EasyMock.capture(callback1)); PowerMock.expectLastCall(); // Second get() should get the produced data and return the new values final Capture<Callback<Void>> secondGetReadToEndCallback = EasyMock.newCapture(); storeLog.readToEnd(EasyMock.capture(secondGetReadToEndCallback)); PowerMock.expectLastCall() .andAnswer( new IAnswer<Object>() { @Override public Object answer() throws Throwable { capturedConsumedCallback .getValue() .onCompletion( null, new ConsumerRecord<>(TOPIC, 0, 0, TP0_KEY.array(), TP0_VALUE.array())); capturedConsumedCallback .getValue() .onCompletion( null, new ConsumerRecord<>(TOPIC, 1, 0, TP1_KEY.array(), TP1_VALUE.array())); secondGetReadToEndCallback.getValue().onCompletion(null, null); return null; } }); // Third get() should pick up data produced by someone else and return those values final Capture<Callback<Void>> thirdGetReadToEndCallback = EasyMock.newCapture(); storeLog.readToEnd(EasyMock.capture(thirdGetReadToEndCallback)); PowerMock.expectLastCall() .andAnswer( new IAnswer<Object>() { @Override public Object answer() throws Throwable { capturedConsumedCallback .getValue() .onCompletion( null, new ConsumerRecord<>(TOPIC, 0, 1, TP0_KEY.array(), TP0_VALUE_NEW.array())); capturedConsumedCallback .getValue() .onCompletion( null, new ConsumerRecord<>(TOPIC, 1, 1, TP1_KEY.array(), TP1_VALUE_NEW.array())); thirdGetReadToEndCallback.getValue().onCompletion(null, null); return null; } }); PowerMock.replayAll(); store.configure(DEFAULT_PROPS); store.start(); // Getting from empty store should return nulls final AtomicBoolean getInvokedAndPassed = new AtomicBoolean(false); store .get( Arrays.asList(TP0_KEY, TP1_KEY), new Callback<Map<ByteBuffer, ByteBuffer>>() { @Override public void onCompletion(Throwable error, Map<ByteBuffer, ByteBuffer> result) { // Since we didn't read them yet, these will be null assertEquals(null, result.get(TP0_KEY)); assertEquals(null, result.get(TP1_KEY)); getInvokedAndPassed.set(true); } }) .get(10000, TimeUnit.MILLISECONDS); assertTrue(getInvokedAndPassed.get()); // Set some offsets Map<ByteBuffer, ByteBuffer> toSet = new HashMap<>(); toSet.put(TP0_KEY, TP0_VALUE); toSet.put(TP1_KEY, TP1_VALUE); final AtomicBoolean invoked = new AtomicBoolean(false); Future<Void> setFuture = store.set( toSet, new Callback<Void>() { @Override public void onCompletion(Throwable error, Void result) { invoked.set(true); } }); assertFalse(setFuture.isDone()); // Out of order callbacks shouldn't matter, should still require all to be invoked before // invoking the callback // for the store's set callback callback1.getValue().onCompletion(null, null); assertFalse(invoked.get()); callback0.getValue().onCompletion(null, null); setFuture.get(10000, TimeUnit.MILLISECONDS); assertTrue(invoked.get()); // Getting data should read to end of our published data and return it final AtomicBoolean secondGetInvokedAndPassed = new AtomicBoolean(false); store .get( Arrays.asList(TP0_KEY, TP1_KEY), new Callback<Map<ByteBuffer, ByteBuffer>>() { @Override public void onCompletion(Throwable error, Map<ByteBuffer, ByteBuffer> result) { assertEquals(TP0_VALUE, result.get(TP0_KEY)); assertEquals(TP1_VALUE, result.get(TP1_KEY)); secondGetInvokedAndPassed.set(true); } }) .get(10000, TimeUnit.MILLISECONDS); assertTrue(secondGetInvokedAndPassed.get()); // Getting data should read to end of our published data and return it final AtomicBoolean thirdGetInvokedAndPassed = new AtomicBoolean(false); store .get( Arrays.asList(TP0_KEY, TP1_KEY), new Callback<Map<ByteBuffer, ByteBuffer>>() { @Override public void onCompletion(Throwable error, Map<ByteBuffer, ByteBuffer> result) { assertEquals(TP0_VALUE_NEW, result.get(TP0_KEY)); assertEquals(TP1_VALUE_NEW, result.get(TP1_KEY)); thirdGetInvokedAndPassed.set(true); } }) .get(10000, TimeUnit.MILLISECONDS); assertTrue(thirdGetInvokedAndPassed.get()); store.stop(); PowerMock.verifyAll(); }
/** * Expects a float array that is equal to the given array, i.e. it has to have the same length, * and each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final float[] aryEq(float[] value) { return EasyMock.aryEq(value); }
/** * Expects an int array that is equal to the given array, i.e. it has to have the same length, and * each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final int[] aryEq(int[] value) { return EasyMock.aryEq(value); }
/** * Expects a short array that is equal to the given array, i.e. it has to have the same length, * and each element has to be equal. * * @param value the given arry. * @return <code>null</code>. */ protected final short[] aryEq(short[] value) { return EasyMock.aryEq(value); }
/** * Expects an Object array that is equal to the given array, i.e. it has to have the same type, * length, and each element has to be equal. * * @param <T> the type of the array, it is passed through to prevent casts. * @param value the given arry. * @return <code>null</code>. */ protected final <T> T[] aryEq(T[] value) { return EasyMock.aryEq(value); }
@Test public void testSetFailure() throws Exception { expectConfigure(); expectStart(Collections.EMPTY_LIST); expectStop(); // Set offsets Capture<org.apache.kafka.clients.producer.Callback> callback0 = EasyMock.newCapture(); storeLog.send( EasyMock.aryEq(TP0_KEY.array()), EasyMock.aryEq(TP0_VALUE.array()), EasyMock.capture(callback0)); PowerMock.expectLastCall(); Capture<org.apache.kafka.clients.producer.Callback> callback1 = EasyMock.newCapture(); storeLog.send( EasyMock.aryEq(TP1_KEY.array()), EasyMock.aryEq(TP1_VALUE.array()), EasyMock.capture(callback1)); PowerMock.expectLastCall(); Capture<org.apache.kafka.clients.producer.Callback> callback2 = EasyMock.newCapture(); storeLog.send( EasyMock.aryEq(TP2_KEY.array()), EasyMock.aryEq(TP2_VALUE.array()), EasyMock.capture(callback2)); PowerMock.expectLastCall(); PowerMock.replayAll(); store.configure(DEFAULT_PROPS); store.start(); // Set some offsets Map<ByteBuffer, ByteBuffer> toSet = new HashMap<>(); toSet.put(TP0_KEY, TP0_VALUE); toSet.put(TP1_KEY, TP1_VALUE); toSet.put(TP2_KEY, TP2_VALUE); final AtomicBoolean invoked = new AtomicBoolean(false); final AtomicBoolean invokedFailure = new AtomicBoolean(false); Future<Void> setFuture = store.set( toSet, new Callback<Void>() { @Override public void onCompletion(Throwable error, Void result) { invoked.set(true); if (error != null) invokedFailure.set(true); } }); assertFalse(setFuture.isDone()); // Out of order callbacks shouldn't matter, should still require all to be invoked before // invoking the callback // for the store's set callback callback1.getValue().onCompletion(null, null); assertFalse(invoked.get()); callback2.getValue().onCompletion(null, new KafkaException("bogus error")); assertTrue(invoked.get()); assertTrue(invokedFailure.get()); callback0.getValue().onCompletion(null, null); try { setFuture.get(10000, TimeUnit.MILLISECONDS); fail( "Should have seen KafkaException thrown when waiting on KafkaOffsetBackingStore.set() future"); } catch (ExecutionException e) { // expected assertNotNull(e.getCause()); assertTrue(e.getCause() instanceof KafkaException); } store.stop(); PowerMock.verifyAll(); }
@Test public void testStartErrorConfiguring() throws Exception { EasyMock.expect(engineController.isEngineRunning()).andReturn(false); serverConfigurator.configure(); EasyMock.expectLastCall().andThrow(new NullPointerException(EXPECTED_EXCEPTION_MSG)); EasyMock.expect(embeddedDatabaseController.shouldUse()).andReturn(false); EasyMock.expect( processManager.executeProcess( EasyMock.aryEq( new String[] { System.getProperty("java.home") + "/bin/java", "-cp", serverHome + "/lib/ant-launcher-1.7.1.jar", "-Dserver.home=" + serverHome, "-Dant.home=" + serverHome, "-Dtomcat.home=" + engineHome + "/hq-server", "-Dlog4j.configuration=" + new File(serverHome + "/conf/log4j.xml").toURI().toURL().toString(), "org.apache.tools.ant.launch.Launcher", "-q", "-lib", serverHome + "/lib", "-listener", "org.apache.tools.ant.listener.Log4jListener", "-buildfile", serverHome + "/data/db-upgrade.xml", "upgrade" }), EasyMock.eq(serverHome), EasyMock.eq(true), EasyMock.eq(HQServer.DB_UPGRADE_PROCESS_TIMEOUT))) .andReturn(0); EasyMock.expect(dataSource.getConnection()).andReturn(connection); EasyMock.expect(connection.createStatement()).andReturn(statement); EasyMock.expect( statement.executeQuery( "select propvalue from EAM_CONFIG_PROPS " + "WHERE propkey = '" + HQConstants.SchemaVersion + "'")) .andReturn(resultSet); EasyMock.expect(resultSet.next()).andReturn(true); EasyMock.expect(resultSet.getString("propvalue")).andReturn("3.1.88"); connection.close(); resultSet.close(); statement.close(); Properties testProps = new Properties(); testProps.put( "server.java.opts", "-XX:MaxPermSize=192m -Xmx512m -Xms512m -XX:+HeapDumpOnOutOfMemoryError"); testProps.put("server.webapp.port", "7080"); final List<String> expectedOpts = new ArrayList<String>(); expectedOpts.add("-XX:MaxPermSize=192m"); expectedOpts.add("-Xmx512m"); expectedOpts.add("-Xms512m"); expectedOpts.add("-XX:+HeapDumpOnOutOfMemoryError"); expectedOpts.add("-Dserver.home=" + serverHome); EasyMock.expect(serverConfigurator.getServerProps()).andReturn(testProps); org.easymock.classextension.EasyMock.expect(osInfo.getName()).andReturn("Mac OS X"); EasyMock.expect(engineController.start(expectedOpts)).andReturn(0); replay(); server.start(); verify(); }