diff --git a/pom.xml b/pom.xml index 372e41e..106bea0 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 1.14 true - 3.2 + 4.2.0 -lcrypto @@ -30,11 +30,10 @@ hawtjni-runtime ${hawtjni-version} - - junit - junit - 4.12 + org.junit.jupiter + junit-jupiter + 5.8.2 test @@ -44,9 +43,15 @@ test - org.easymock - easymock - ${easymock-version} + org.mockito + mockito-core + ${mockito-version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito-version} test @@ -143,6 +148,11 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + org.apache.maven.plugins maven-shade-plugin diff --git a/src/test/java/com/github/plusvic/yara/GenericIteratorTest.java b/src/test/java/com/github/plusvic/yara/GenericIteratorTest.java index 4bd0573..bb843d7 100644 --- a/src/test/java/com/github/plusvic/yara/GenericIteratorTest.java +++ b/src/test/java/com/github/plusvic/yara/GenericIteratorTest.java @@ -1,11 +1,15 @@ package com.github.plusvic.yara; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.NoSuchElementException; import java.util.UUID; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * User: pba @@ -97,7 +101,7 @@ protected String getNext() { assertEquals(size, count); } - @Test(expected = NoSuchElementException.class) + @Test public void testNextFirst() { GenericIterator it = new GenericIterator() { private boolean used = false; @@ -113,13 +117,13 @@ protected String getNext() { }; assertNotNull(it.next()); - assertNotNull(it.next()); + Assertions.assertThrows(NoSuchElementException.class, it::next); } @Test public void testNextFirstMultiple() { GenericIterator it = new GenericIterator() { - private String values[] = new String[] { "one", "two"}; + private final String[] values = new String[] { "one", "two"}; private int pos = 0; @Override diff --git a/src/test/java/com/github/plusvic/yara/UtilsTest.java b/src/test/java/com/github/plusvic/yara/UtilsTest.java index 2972a3b..c62b766 100644 --- a/src/test/java/com/github/plusvic/yara/UtilsTest.java +++ b/src/test/java/com/github/plusvic/yara/UtilsTest.java @@ -1,8 +1,9 @@ package com.github.plusvic.yara; -import org.junit.Test; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.Assert.assertEquals; /** * User: pba diff --git a/src/test/java/com/github/plusvic/yara/embedded/YaraCompilerImplTest.java b/src/test/java/com/github/plusvic/yara/embedded/YaraCompilerImplTest.java index 6fef44c..2626044 100644 --- a/src/test/java/com/github/plusvic/yara/embedded/YaraCompilerImplTest.java +++ b/src/test/java/com/github/plusvic/yara/embedded/YaraCompilerImplTest.java @@ -1,11 +1,15 @@ package com.github.plusvic.yara.embedded; -import com.github.plusvic.yara.*; +import com.github.plusvic.yara.TestUtils; +import com.github.plusvic.yara.YaraCompilationCallback; +import com.github.plusvic.yara.YaraCompiler; +import com.github.plusvic.yara.YaraException; +import com.github.plusvic.yara.YaraScanner; import net.jcip.annotations.NotThreadSafe; -import org.junit.After; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import java.io.File; import java.nio.file.Files; @@ -16,7 +20,10 @@ import java.util.logging.Level; import java.util.logging.Logger; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /** * User: pba @@ -56,12 +63,13 @@ public class YaraCompilerImplTest { private YaraImpl yara; - @Before + @BeforeEach public void setup() { + System.out.println("assign yara"); this.yara = new YaraImpl(); } - @After + @AfterEach public void teardown() throws Exception { this.yara.close(); } @@ -87,12 +95,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testAddRulesContentSucceeds() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = yara.createCompiler()) { compiler.setCallback(callback); @@ -103,13 +106,9 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testAddRulesContentFails() throws Exception { final AtomicBoolean called = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - called.set(true); - LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", - fileName, lineNumber, message)); - } + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> { + called.set(true); + LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", fileName, lineNumber, message)); }; try (YaraCompiler compiler = yara.createCompiler()) { @@ -235,12 +234,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testCreateScanner() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = yara.createCompiler()) { compiler.setCallback(callback); @@ -252,14 +246,10 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str } } - @Ignore("yara asserts which stops execution") + @Test + @Disabled("yara asserts which stops execution") public void testAddRulesAfterScannerCreate() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = yara.createCompiler()) { compiler.setCallback(callback); diff --git a/src/test/java/com/github/plusvic/yara/embedded/YaraImplTest.java b/src/test/java/com/github/plusvic/yara/embedded/YaraImplTest.java index 74ed746..14db105 100644 --- a/src/test/java/com/github/plusvic/yara/embedded/YaraImplTest.java +++ b/src/test/java/com/github/plusvic/yara/embedded/YaraImplTest.java @@ -1,9 +1,9 @@ package com.github.plusvic.yara.embedded; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.github.plusvic.yara.YaraCompiler; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * User: pba diff --git a/src/test/java/com/github/plusvic/yara/embedded/YaraLibraryTest.java b/src/test/java/com/github/plusvic/yara/embedded/YaraLibraryTest.java index 255b2e3..e5047ae 100644 --- a/src/test/java/com/github/plusvic/yara/embedded/YaraLibraryTest.java +++ b/src/test/java/com/github/plusvic/yara/embedded/YaraLibraryTest.java @@ -1,7 +1,7 @@ package com.github.plusvic.yara.embedded; import net.jcip.annotations.NotThreadSafe; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; diff --git a/src/test/java/com/github/plusvic/yara/embedded/YaraScannerImplTest.java b/src/test/java/com/github/plusvic/yara/embedded/YaraScannerImplTest.java index 861d22a..4091570 100644 --- a/src/test/java/com/github/plusvic/yara/embedded/YaraScannerImplTest.java +++ b/src/test/java/com/github/plusvic/yara/embedded/YaraScannerImplTest.java @@ -2,12 +2,11 @@ import com.github.plusvic.yara.*; import net.jcip.annotations.NotThreadSafe; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.io.File; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -18,8 +17,14 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import static org.easymock.EasyMock.createNiceMock; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.Mockito.mock; + /** * User: pba @@ -56,52 +61,43 @@ public class YaraScannerImplTest { private YaraImpl yara; - @Before + @BeforeEach public void setup() { this.yara = new YaraImpl(); } - @After + @AfterEach public void teardown() throws Exception { yara.close(); } - @Test(expected = IllegalArgumentException.class) - public void testCreateNoRules() throws IOException { - new YaraScannerImpl(createNiceMock(YaraLibrary.class), 0); + @Test + public void testCreateNoRules() { + assertThrows(IllegalArgumentException.class, () -> new YaraScannerImpl(mock(YaraLibrary.class), 0)); } - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNoLibrary() { - new YaraScannerImpl(null, 1); + assertThrows(IllegalArgumentException.class, () -> new YaraScannerImpl(null, 1)); } @Test public void testCreate() { - new YaraScannerImpl(createNiceMock(YaraLibrary.class), 1); + new YaraScannerImpl(mock(YaraLibrary.class), 1); } - @Test(expected = IllegalArgumentException.class) + @Test public void testWrongTimeout() { - new YaraScannerImpl(createNiceMock(YaraLibrary.class), 1).setTimeout(-1); + YaraScannerImpl impl = new YaraScannerImpl(mock(YaraLibrary.class), 1); + assertThrows(IllegalArgumentException.class, () -> impl.setTimeout(-1)); } @Test public void testSetCallback() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; - - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); + YaraScanCallback scanCallback = v -> {}; // Create compiler and get scanner try (YaraCompiler compiler = yara.createCompiler()) { @@ -124,25 +120,17 @@ public void testScanMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertEquals("HelloWorld", v.getIdentifier()); - assertMetas(v.getMetadata()); - assertStrings(v.getStrings()); - assertTags(v.getTags()); + YaraScanCallback scanCallback = v -> { + assertEquals("HelloWorld", v.getIdentifier()); + assertMetas(v.getMetadata()); + assertStrings(v.getStrings()); + assertTags(v.getTags()); - match.set(true); - } + match.set(true); }; // Create compiler and get scanner @@ -173,23 +161,15 @@ public void testScanNegateMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicInteger match = new AtomicInteger(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertMetas(v.getMetadata()); - assertFalse(v.getStrings().next().getMatches().hasNext()); + YaraScanCallback scanCallback = v -> { + assertMetas(v.getMetadata()); + assertFalse(v.getStrings().next().getMatches().hasNext()); - match.incrementAndGet(); - } + match.incrementAndGet(); }; // Create compiler and get scanner @@ -222,23 +202,14 @@ public void testScanNegateLimitMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicInteger match = new AtomicInteger(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertMetas(v.getMetadata()); - assertFalse(v.getStrings().next().getMatches().hasNext()); - - match.incrementAndGet(); - } + YaraScanCallback scanCallback = v -> { + assertMetas(v.getMetadata()); + assertFalse(v.getStrings().next().getMatches().hasNext()); + match.incrementAndGet(); }; // Create compiler and get scanner @@ -268,21 +239,11 @@ public void testScanNoMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - match.set(true); - } - }; + YaraScanCallback scanCallback = v -> match.set(true); // Create compiler and get scanner try (YaraCompiler compiler = yara.createCompiler()) { @@ -306,24 +267,14 @@ public void testScanModule() throws Exception { File temp = File.createTempFile(UUID.randomUUID().toString(), ".tmp"); Files.write(Paths.get(temp.getAbsolutePath()), "Hello world".getBytes(), StandardOpenOption.WRITE); - Map args = new HashMap(); + Map args = new HashMap<>(); args.put("pe", temp.getAbsolutePath()); - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - match.set(true); - } - }; + YaraScanCallback scanCallback = v -> match.set(true); // Create compiler and get scanner try (YaraCompiler compiler = yara.createCompiler()) { @@ -346,24 +297,16 @@ public void testScanMemMatch() throws Exception { // Make test buffer byte[] buffer = "Hello world".getBytes(); - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertEquals("HelloWorld", v.getIdentifier()); - assertMetas(v.getMetadata()); - assertStrings(v.getStrings()); - assertTags(v.getTags()); - match.set(true); - } + YaraScanCallback scanCallback = v -> { + assertEquals("HelloWorld", v.getIdentifier()); + assertMetas(v.getMetadata()); + assertStrings(v.getStrings()); + assertTags(v.getTags()); + match.set(true); }; // Create compiler and get scanner diff --git a/src/test/java/com/github/plusvic/yara/external/LineTokenizerTest.java b/src/test/java/com/github/plusvic/yara/external/LineTokenizerTest.java index 07f24ff..0b41a0a 100644 --- a/src/test/java/com/github/plusvic/yara/external/LineTokenizerTest.java +++ b/src/test/java/com/github/plusvic/yara/external/LineTokenizerTest.java @@ -1,10 +1,14 @@ package com.github.plusvic.yara.external; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Iterator; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + /** * User: pba @@ -12,9 +16,9 @@ * Time: 6:15 PM */ public class LineTokenizerTest { - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNull() { - new LineTokenizer(null); + assertThrows(IllegalArgumentException.class, () ->new LineTokenizer(null)); } @Test @@ -300,7 +304,7 @@ public void testUnbalancedString() { assertEquals(new LineTokenizer.Token(LineTokenizer.TokenType.IDENTIFIER, "one"), tokens.next()); assertEquals(new LineTokenizer.Token(LineTokenizer.TokenType.STRING, "this is a test"), tokens.next()); - assertEquals(new LineTokenizer.Token(LineTokenizer.TokenType.STRING, "two"), tokens.next());; + assertEquals(new LineTokenizer.Token(LineTokenizer.TokenType.STRING, "two"), tokens.next()); assertFalse(tokens.hasNext()); assertEquals(LineTokenizer.EMPTY_TOKENS, tokenizer.next(LineTokenizer.TOKENS_ALL)); diff --git a/src/test/java/com/github/plusvic/yara/external/NativeExecutableTest.java b/src/test/java/com/github/plusvic/yara/external/NativeExecutableTest.java index 2a083ee..2b6a32c 100644 --- a/src/test/java/com/github/plusvic/yara/external/NativeExecutableTest.java +++ b/src/test/java/com/github/plusvic/yara/external/NativeExecutableTest.java @@ -1,10 +1,13 @@ package com.github.plusvic.yara.external; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.UUID; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + /** * User: pba @@ -12,14 +15,15 @@ * Time: 8:55 AM */ public class NativeExecutableTest { - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNoName() { - new NativeExecutable(""); + assertThrows(IllegalArgumentException.class, () -> new NativeExecutable("")); } - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNullName() { - new NativeExecutable(null, NativeExecutableTest.class.getClassLoader()); + assertThrows(IllegalArgumentException.class, + () -> new NativeExecutable(null, NativeExecutableTest.class.getClassLoader())); } @Test diff --git a/src/test/java/com/github/plusvic/yara/external/YaraCompilerTest.java b/src/test/java/com/github/plusvic/yara/external/YaraCompilerTest.java index a910223..2f9079a 100644 --- a/src/test/java/com/github/plusvic/yara/external/YaraCompilerTest.java +++ b/src/test/java/com/github/plusvic/yara/external/YaraCompilerTest.java @@ -1,7 +1,7 @@ package com.github.plusvic.yara.external; import com.github.plusvic.yara.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.File; import java.nio.file.Files; @@ -13,7 +13,12 @@ import java.util.logging.Level; import java.util.logging.Logger; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; /** * User: pba @@ -55,35 +60,28 @@ public void testCreate() { new YaraCompilerImpl(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testSetNullCallback() { - new YaraCompilerImpl().setCallback(null); + YaraCompilerImpl impl = new YaraCompilerImpl(); + assertThrows(IllegalArgumentException.class, () -> impl.setCallback(null)); } - @Test(expected = IllegalArgumentException.class) + @Test public void testAddNullRule() { - new YaraCompilerImpl().addRulesContent(null, null); + YaraCompilerImpl yaraCompiler = new YaraCompilerImpl(); + assertThrows(IllegalArgumentException.class, () -> yaraCompiler.addRulesContent(null, null)); } @Test public void testSetCallback() throws Exception { try (YaraCompiler compiler = new YaraCompilerImpl()) { - compiler.setCallback(new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - } - }); + compiler.setCallback((errorLevel, fileName, lineNumber, message) -> {}); } } @Test public void testAddRulesContentSucceeds() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = new YaraCompilerImpl()) { compiler.setCallback(callback); @@ -94,13 +92,10 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testAddRulesContentFails() throws Exception { final AtomicBoolean called = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - called.set(true); - LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", - fileName, lineNumber, message)); - } + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> { + called.set(true); + LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", + fileName, lineNumber, message)); }; try (YaraCompiler compiler = new YaraCompilerImpl()) { @@ -119,12 +114,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testAddRulesFileSucceeds() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); Path rule = File.createTempFile(UUID.randomUUID().toString(), "yara") @@ -138,19 +128,15 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str } } - @Test(expected = IllegalArgumentException.class) + @Test public void testAddRulesFileFails() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> {}; String rule = UUID.randomUUID().toString(); try (YaraCompiler compiler = new YaraCompilerImpl()) { compiler.setCallback(callback); - compiler.addRulesFile(rule, rule, null); + assertThrows(IllegalArgumentException.class, () -> compiler.addRulesFile(rule, rule, null)); } } @@ -158,12 +144,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str public void testAddRulePackageSucceeds() throws Exception { final AtomicBoolean called = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = new YaraCompilerImpl()) { @@ -175,11 +156,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str Files.write(Paths.get(temp.getAbsolutePath()), "Hello world".getBytes(), StandardOpenOption.WRITE); try (YaraScanner scanner = compiler.createScanner()) { - scanner.setCallback(new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - } - }); + scanner.setCallback(rule -> {}); scanner.scan(temp); } @@ -191,12 +168,7 @@ public void onMatch(YaraRule rule) { public void testAddRuleMultiLevelPackageSucceeds() throws Exception { final AtomicBoolean called = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = new YaraCompilerImpl()) { @@ -208,11 +180,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str Files.write(Paths.get(temp.getAbsolutePath()), "Hello world".getBytes(), StandardOpenOption.WRITE); try (YaraScanner scanner = compiler.createScanner()) { - scanner.setCallback(new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - } - }); + scanner.setCallback(rule -> {}); scanner.scan(temp); } @@ -223,13 +191,10 @@ public void onMatch(YaraRule rule) { @Test public void testAddRulePackageFails() throws Exception { final AtomicBoolean called = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - called.set(true); - LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", - fileName, lineNumber, message)); - } + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> { + called.set(true); + LOGGER.log(Level.INFO, String.format("Compilation failed in %s at %d: %s", + fileName, lineNumber, message)); }; // Write test file @@ -242,11 +207,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str compiler.addRulesPackage(TestUtils.getResource("rules/two-levels.zip").toString(), null); try (YaraScanner scanner = compiler.createScanner()) { - scanner.setCallback(new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - } - }); + scanner.setCallback(rule -> {}); scanner.scan(temp); } @@ -261,12 +222,7 @@ public void onMatch(YaraRule rule) { @Test public void testCreateScanner() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = new YaraCompilerImpl()) { compiler.setCallback(callback); @@ -280,12 +236,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testAddRulesAfterScannerCreate() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); try (YaraCompiler compiler = new YaraCompilerImpl()) { compiler.setCallback(callback); diff --git a/src/test/java/com/github/plusvic/yara/external/YaraImplTest.java b/src/test/java/com/github/plusvic/yara/external/YaraImplTest.java index f2ebd25..0271ff8 100644 --- a/src/test/java/com/github/plusvic/yara/external/YaraImplTest.java +++ b/src/test/java/com/github/plusvic/yara/external/YaraImplTest.java @@ -1,8 +1,8 @@ package com.github.plusvic.yara.external; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * User: pba diff --git a/src/test/java/com/github/plusvic/yara/external/YaraOutputProcessorTest.java b/src/test/java/com/github/plusvic/yara/external/YaraOutputProcessorTest.java index c44b751..0622ef9 100644 --- a/src/test/java/com/github/plusvic/yara/external/YaraOutputProcessorTest.java +++ b/src/test/java/com/github/plusvic/yara/external/YaraOutputProcessorTest.java @@ -1,15 +1,20 @@ package com.github.plusvic.yara.external; import com.github.plusvic.yara.*; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.atomic.AtomicReference; -import static org.easymock.EasyMock.createNiceMock; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.Mockito.mock; + /** * User: pba @@ -17,24 +22,19 @@ * Time: 3:56 PM */ public class YaraOutputProcessorTest { - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNull() { - new YaraOutputProcessor(null); + assertThrows(IllegalArgumentException.class, () -> new YaraOutputProcessor(null)); } @Test public void testCreate() { - new YaraOutputProcessor(createNiceMock(YaraScanCallback.class)); + new YaraOutputProcessor(mock(YaraScanCallback.class)); } @Test public void testStartComplete() { - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - fail(); - } - }; + YaraScanCallback callback = rule -> fail(); YaraOutputProcessor processor = new YaraOutputProcessor(callback); processor.onStart(); @@ -45,12 +45,7 @@ public void onMatch(YaraRule rule) { public void testRuleNoMeta() { final AtomicReference captureRule = new AtomicReference<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - captureRule.set(rule); - } - }; + YaraScanCallback callback = captureRule::set; String value = "HelloWorld [] []"; @@ -69,12 +64,7 @@ public void onMatch(YaraRule rule) { public void testRuleTags() { final AtomicReference captureRule = new AtomicReference<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - captureRule.set(rule); - } - }; + YaraScanCallback callback = captureRule::set; String value = "HelloWorld [One,Two,Three] []"; @@ -103,12 +93,7 @@ public void onMatch(YaraRule rule) { public void testRuleMeta() { final AtomicReference captureRule = new AtomicReference<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - captureRule.set(rule); - } - }; + YaraScanCallback callback = captureRule::set; String value = "HelloWorld [] [name=\"InstallsDriver\",description=\"The file attempted to install a driver\"]"; @@ -140,12 +125,7 @@ public void onMatch(YaraRule rule) { public void testRuleMetaAll() { final AtomicReference captureRule = new AtomicReference<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - captureRule.set(rule); - } - }; + YaraScanCallback callback = captureRule::set; String value = "HelloWorld [] [string=\"String\",number=1,boolean=true]"; @@ -181,12 +161,7 @@ public void onMatch(YaraRule rule) { public void testRuleMetaUgly() { final AtomicReference captureRule = new AtomicReference<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - captureRule.set(rule); - } - }; + YaraScanCallback callback = captureRule::set; String value = "HelloWorld [One] [name=\"InstallsDriver\"," + "description=\"The file attempted to install a driver\"," + @@ -248,12 +223,7 @@ public void onMatch(YaraRule rule) { public void testRuleMultiple() { final List rules =new ArrayList<>(); - YaraScanCallback callback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule rule) { - rules.add(rule); - } - }; + YaraScanCallback callback = rules::add; String[] lines = new String[] { "HelloWorld [] [name=\"InstallsDriver\",description=\"The file attempted to install a driver\"] test.bla", diff --git a/src/test/java/com/github/plusvic/yara/external/YaraScannerImplTest.java b/src/test/java/com/github/plusvic/yara/external/YaraScannerImplTest.java index 97c08bd..545ecb5 100644 --- a/src/test/java/com/github/plusvic/yara/external/YaraScannerImplTest.java +++ b/src/test/java/com/github/plusvic/yara/external/YaraScannerImplTest.java @@ -2,7 +2,7 @@ import com.github.plusvic.yara.*; import net.jcip.annotations.NotThreadSafe; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.File; import java.nio.file.Files; @@ -15,7 +15,13 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + /** * User: pba @@ -51,9 +57,9 @@ public class YaraScannerImplTest { "}"; - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNoRules() { - new YaraScannerImpl(null); + assertThrows(IllegalArgumentException.class, () -> new YaraScannerImpl(null)); } @Test @@ -61,26 +67,18 @@ public void testCreate() { new YaraScannerImpl(Paths.get(System.getProperty("java.io.tmpdir"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void testWrongTimeout() { - new YaraScannerImpl(Paths.get(System.getProperty("java.io.tmpdir"))).setTimeout(-1); + YaraScannerImpl impl = new YaraScannerImpl(Paths.get(System.getProperty("java.io.tmpdir"))); + assertThrows(IllegalArgumentException.class, () -> impl.setTimeout(-1)); } @Test public void testSetCallback() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - } - }; + YaraScanCallback scanCallback = v -> {}; // Create compiler and get scanner try (YaraCompiler compiler = new YaraCompilerImpl()) { @@ -103,24 +101,16 @@ public void testScanMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertEquals("HelloWorld", v.getIdentifier()); - assertMetas(v.getMetadata()); - assertStrings(v.getStrings()); + YaraScanCallback scanCallback = v -> { + assertEquals("HelloWorld", v.getIdentifier()); + assertMetas(v.getMetadata()); + assertStrings(v.getStrings()); - match.set(true); - } + match.set(true); }; // Create compiler and get scanner @@ -151,23 +141,14 @@ public void testScanNegateMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicInteger match = new AtomicInteger(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertMetas(v.getMetadata()); - assertFalse(v.getStrings().hasNext()); - - match.incrementAndGet(); - } + YaraScanCallback scanCallback = v -> { + assertMetas(v.getMetadata()); + assertFalse(v.getStrings().hasNext()); + match.incrementAndGet(); }; // Create compiler and get scanner @@ -200,23 +181,14 @@ public void testScanNegateLimitMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicInteger match = new AtomicInteger(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - assertMetas(v.getMetadata()); - assertFalse(v.getStrings().hasNext()); - - match.incrementAndGet(); - } + YaraScanCallback scanCallback = v -> { + assertMetas(v.getMetadata()); + assertFalse(v.getStrings().hasNext()); + match.incrementAndGet(); }; // Create compiler and get scanner @@ -245,21 +217,11 @@ public void testScanNoMatch() throws Exception { // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - match.set(true); - } - }; + YaraScanCallback scanCallback = v -> match.set(true); // Create compiler and get scanner try (YaraCompiler compiler = new YaraCompilerImpl()) { @@ -283,27 +245,16 @@ public void testScanModule() throws Exception { File temp = File.createTempFile(UUID.randomUUID().toString(), ".tmp"); Files.write(Paths.get(temp.getAbsolutePath()), "Hello world".getBytes(), StandardOpenOption.WRITE); - Map moduleArgs = new HashMap(); + Map moduleArgs = new HashMap<>(); moduleArgs.put("pe", temp.getAbsolutePath()); // - YaraCompilationCallback compileCallback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback compileCallback = (errorLevel, fileName, lineNumber, message) -> fail(); final AtomicBoolean match = new AtomicBoolean(); - YaraScanCallback scanCallback = new YaraScanCallback() { - @Override - public void onMatch(YaraRule v) { - - match.set(true); - } - }; + YaraScanCallback scanCallback = v -> match.set(true); // Create compiler and get scanner diff --git a/src/test/java/com/github/plusvic/yara/external/YaracExecutableTest.java b/src/test/java/com/github/plusvic/yara/external/YaracExecutableTest.java index b0ebb12..8628672 100644 --- a/src/test/java/com/github/plusvic/yara/external/YaracExecutableTest.java +++ b/src/test/java/com/github/plusvic/yara/external/YaracExecutableTest.java @@ -2,15 +2,23 @@ import com.github.plusvic.yara.TestUtils; import com.github.plusvic.yara.YaraCompilationCallback; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.concurrent.atomic.AtomicBoolean; -import static org.easymock.EasyMock.*; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + /** * User: pba @@ -23,26 +31,26 @@ public void testCreate() { new YaracExecutable(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testCreateNull() { - new YaracExecutable(null); + assertThrows(IllegalArgumentException.class, () -> new YaracExecutable(null)); } @Test public void testCreateNativeExec() { - NativeExecutable exec = createNiceMock(NativeExecutable.class); - expect(exec.load()).andReturn(true).once(); - replay(exec); + NativeExecutable exec = mock(NativeExecutable.class); + when(exec.load()).thenReturn(true); new YaracExecutable(exec); - verify(exec); + verify(exec, times(1)).load(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testRuleNullNamespace() { YaracExecutable exec = new YaracExecutable(); - assertEquals(exec, exec.addRule(null, Paths.get(System.getProperty("java.io.tmpdir")))); + Path tempdir = Paths.get(System.getProperty("java.io.tmpdir")); + assertThrows(IllegalArgumentException.class, () -> exec.addRule(null, tempdir)); } @@ -56,12 +64,7 @@ public void testRule() { public void testExecuteNoArgs() throws Exception { final AtomicBoolean failure = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - failure.set(true); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> failure.set(true); Path output = new YaracExecutable().compile(callback); assertNotNull(output); @@ -70,12 +73,7 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str @Test public void testExecuteOK() throws Exception { - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - fail(); - } - }; + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> fail(); Path output = new YaracExecutable() .addRule(TestUtils.getResource("rules/hello.yara")) @@ -89,15 +87,12 @@ public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, Str public void testExecuteError() throws Exception { final AtomicBoolean failure = new AtomicBoolean(); - YaraCompilationCallback callback = new YaraCompilationCallback() { - @Override - public void onError(ErrorLevel errorLevel, String fileName, long lineNumber, String message) { - assertEquals(ErrorLevel.ERROR, errorLevel); - assertTrue(fileName.endsWith("error.yara")); - assertEquals(13, lineNumber); - assertTrue(message.endsWith("$b\"")); - failure.set(true); - } + YaraCompilationCallback callback = (errorLevel, fileName, lineNumber, message) -> { + assertEquals(YaraCompilationCallback.ErrorLevel.ERROR, errorLevel); + assertTrue(fileName.endsWith("error.yara")); + assertEquals(13, lineNumber); + assertTrue(message.endsWith("$b\"")); + failure.set(true); }; Path output = new YaracExecutable()