Skip to content

Commit 0377060

Browse files
committed
add JVMProbe unittest
1 parent 88aa15a commit 0377060

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

rasp/jvm/JVMProbe/build.gradle

+24
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id 'java-library'
33
id 'com.github.johnrengelman.shadow' version '6.0.0'
4+
id 'jacoco'
45
}
56

67
group 'com.security'
@@ -10,6 +11,29 @@ repositories {
1011
mavenCentral()
1112
}
1213

14+
jacoco {
15+
toolVersion = "0.8.5"
16+
}
17+
18+
test {
19+
useJUnitPlatform()
20+
finalizedBy jacocoTestReport // report is always generated after tests run
21+
}
22+
23+
jacocoTestReport {
24+
dependencies {
25+
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
26+
testImplementation 'org.mockito:mockito-core:4.11.0'
27+
}
28+
dependsOn test // tests are required to run before generating the report
29+
reports {
30+
xml.enabled true
31+
csv.enabled false
32+
html.destination file("${buildDir}/reports/jacoco")
33+
}
34+
}
35+
36+
1337
dependencies {
1438
implementation files('lib/nashorn.jar')
1539
testImplementation group: 'junit', name: 'junit', version: '4.13.1'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import java.io.InputStream;
2+
import java.io.Reader;
3+
import java.util.HashSet;
4+
import java.util.Set;
5+
import java.util.List;
6+
import java.util.ArrayList;
7+
import java.util.Arrays;
8+
import org.junit.jupiter.api.Test;
9+
import static org.junit.jupiter.api.Assertions.*;
10+
import static org.mockito.Mockito.*;
11+
12+
13+
import com.security.smith.log.AttachInfo;
14+
import com.security.smith.log.SmithLogger;
15+
import com.esotericsoftware.yamlbeans.YamlReader;
16+
import com.security.smith.client.MessageSerializer;
17+
import com.security.smith.client.MessageDeserializer;
18+
import com.security.smith.client.MessageDecoder;
19+
import com.security.smith.client.MessageEncoder;
20+
import com.security.smith.type.SmithClass;
21+
import com.security.smith.type.SmithMethod;
22+
import com.security.smith.ruleengine.JsRuleEngine;
23+
import com.security.smith.SmithProbe;
24+
import com.security.smith.client.message.Heartbeat;
25+
import com.lmax.disruptor.dsl.Disruptor;
26+
import com.lmax.disruptor.EventFactory;
27+
import com.security.smith.client.message.Trace;
28+
import com.security.smith.SmithProbeProxy;
29+
import com.security.smith.client.Client;
30+
import com.security.smith.client.Rule_Config;
31+
import com.security.smith.client.Rule_Mgr;
32+
33+
34+
public class SmithProbeTest {
35+
36+
@Test
37+
void testInit() {
38+
// Mock dependencies
39+
AttachInfo attachInfoMock = mock(AttachInfo.class);
40+
SmithLogger smithLoggerMock = mock(SmithLogger.class);
41+
MessageSerializer messageSerializerMock = mock(MessageSerializer.class);
42+
MessageEncoder messageEncoderMock = mock(MessageEncoder.class);
43+
MessageDecoder messageDecoderMock = mock(MessageDecoder.class);
44+
Heartbeat heartbeatMock = mock(Heartbeat.class);
45+
Client clientMock = mock(Client.class);
46+
Disruptor<Trace> disruptorMock = mock(Disruptor.class);
47+
Rule_Mgr ruleMgrMock = mock(Rule_Mgr.class);
48+
Rule_Config ruleConfigMock = mock(Rule_Config.class);
49+
SmithProbeProxy smithProbeProxyMock = mock(SmithProbeProxy.class);
50+
JsRuleEngine jsRuleEngineMock = mock(JsRuleEngine.class);
51+
52+
// Create instance of the class under test
53+
SmithProbe yourClass = mock(SmithProbe.class);
54+
55+
// Set up mocks
56+
when(yourClass.getHeartbeat()).thenReturn(heartbeatMock);
57+
when(yourClass.getClient()).thenReturn(clientMock);
58+
when(yourClass.getDisruptor()).thenReturn(disruptorMock);
59+
when(yourClass.getRuleMgr()).thenReturn(ruleMgrMock);
60+
when(yourClass.getRuleConfig()).thenReturn(ruleConfigMock);
61+
when(yourClass.getSmithProxy()).thenReturn(smithProbeProxyMock);
62+
when(yourClass.getJsRuleEngine()).thenReturn(jsRuleEngineMock);
63+
64+
doNothing().when(yourClass).init();
65+
66+
67+
}
68+
}

0 commit comments

Comments
 (0)