Skip to content

Commit 6d475d0

Browse files
author
Raja Maragani
authored
Get service name and Validate message methods implementation (#34)
* Added getServiceName and validateMsg methods * removed try and catch outPutValidate method * changed getServiceName return eiffel-semantics to eiffelsemantics * Created constants for all hard coded strings.
1 parent 60534f8 commit 6d475d0

File tree

4 files changed

+80
-17
lines changed

4 files changed

+80
-17
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 0.1.9
2+
- Implemented getServiceName and added remrem-protocol-interface
3+
14
## 0.1.8
25
- added getEventId functionality for get the event id from the json Object
36

build.gradle

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jar {
3535

3636
shadowJar {
3737
baseName = 'eiffel-remrem-semantics'
38-
version = '0.1.8'
38+
version = '0.1.9'
3939
classifier = ''
4040
}
4141

@@ -64,7 +64,8 @@ repositories {
6464
install.dependsOn shadowJar
6565

6666
dependencies {
67-
compile 'com.github.Ericsson:eiffel-remrem-shared:0.1.5'
67+
compile 'com.github.Ericsson:eiffel-remrem-shared:0.2.0'
68+
compile 'com.github.Ericsson:eiffel-remrem-protocol-interface:0.0.1'
6869
compile('com.github.fge:json-schema-validator:2.2.6')
6970
{
7071
// we need to exclude jackson-databind here and add a

src/main/java/com/ericsson/eiffel/remrem/semantics/SemanticsService.java

+39-5
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@
1212
import org.slf4j.Logger;
1313
import org.slf4j.LoggerFactory;
1414

15+
import com.ericsson.eiffel.remrem.protocol.MsgService;
16+
import com.ericsson.eiffel.remrem.protocol.ValidationResult;
1517
import com.ericsson.eiffel.remrem.semantics.events.EiffelActivityFinishedEvent;
1618
import com.ericsson.eiffel.remrem.semantics.events.EiffelArtifactPublishedEvent;
1719
import com.ericsson.eiffel.remrem.semantics.events.Event;
1820
import com.ericsson.eiffel.remrem.semantics.factory.EiffelOutputValidatorFactory;
1921
import com.ericsson.eiffel.remrem.semantics.validator.EiffelValidationException;
2022
import com.ericsson.eiffel.remrem.semantics.validator.EiffelValidator;
21-
import com.ericsson.eiffel.remrem.shared.MsgService;
2223
import com.google.gson.Gson;
2324
import com.google.gson.JsonObject;
2425
import com.google.gson.JsonParser;
@@ -27,6 +28,11 @@
2728
@Named("eiffel-semantics")
2829
public class SemanticsService implements MsgService{
2930

31+
private static final String EVENT_PARAMS = "eventParams";
32+
private static final String MSG_PARAMS = "msgParams";
33+
private static final String MESSAGE = "message";
34+
private static final String CAUSE = "cause";
35+
private static final String EIFFELSEMANTICS = "eiffelsemantics";
3036
private static final String ID = "id";
3137
private static final String META = "meta";
3238

@@ -50,8 +56,8 @@ public String generateMsg(String msgType, JsonObject bodyJson){
5056
}
5157
Class<? extends Event> eventType = eventTypes.get(eiffelType);
5258

53-
JsonObject msgNodes = bodyJson.get("msgParams").getAsJsonObject();
54-
JsonObject eventNodes = bodyJson.get("eventParams").getAsJsonObject();
59+
JsonObject msgNodes = bodyJson.get(MSG_PARAMS).getAsJsonObject();
60+
JsonObject eventNodes = bodyJson.get(EVENT_PARAMS).getAsJsonObject();
5561

5662
Event event = createEvent(eventNodes, eventType);
5763
event.generateMeta(msgType, msgNodes);
@@ -72,8 +78,8 @@ private Event createEvent(JsonObject eventNodes, Class<? extends Event> eventTyp
7278

7379
private String createErrorResponse(final String message, final String cause){
7480
JsonObject errorResponse = new JsonObject();
75-
errorResponse.addProperty("message", message);
76-
errorResponse.addProperty("cause", cause.replace("\n", ""));
81+
errorResponse.addProperty(MESSAGE, message);
82+
errorResponse.addProperty(CAUSE, cause.replace("\n", ""));
7783
return errorResponse.toString();
7884
}
7985

@@ -92,4 +98,32 @@ public String getEventId(JsonObject json) {
9298
}
9399
return null;
94100
}
101+
102+
@Override
103+
public String getFamily(JsonObject eiffelMessage) {
104+
return null;
105+
}
106+
107+
@Override
108+
public String getType(JsonObject eiffelMessage) {
109+
return null;
110+
}
111+
@Override
112+
public String getServiceName() {
113+
return EIFFELSEMANTICS;
114+
}
115+
116+
@Override
117+
public ValidationResult validateMsg(String msgType, JsonObject jsonvalidateMessage) {
118+
ValidationResult validationResult = null;
119+
EiffelEventType eiffelType = EiffelEventType.fromString(msgType);
120+
String result = gson.toJson(jsonvalidateMessage);
121+
try {
122+
outputValidate(eiffelType, result);
123+
validationResult = new ValidationResult(true, "");
124+
} catch (EiffelValidationException e) {
125+
validationResult = new ValidationResult(false, e.getLocalizedMessage());
126+
}
127+
return validationResult;
128+
}
95129
}

src/test/java/com/ericsson/eiffel/remrem/semantics/ServiceTest.java

+35-10
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
package com.ericsson.eiffel.remrem.semantics;
22

3-
import com.ericsson.eiffel.remrem.semantics.events.EiffelActivityFinishedEvent;
4-
import com.ericsson.eiffel.remrem.semantics.events.EiffelArtifactPublishedEvent;
5-
import com.google.gson.JsonObject;
6-
import com.google.gson.JsonParser;
3+
import static org.mockito.Matchers.anyString;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.when;
6+
7+
import java.io.File;
8+
import java.io.FileNotFoundException;
9+
import java.io.FileReader;
10+
import java.util.jar.Attributes;
11+
712
import org.junit.Assert;
813
import org.junit.Before;
914
import org.junit.Test;
1015
import org.mockito.InjectMocks;
11-
import static org.mockito.Mockito.*;
12-
1316
import org.mockito.MockitoAnnotations;
1417

15-
import java.io.File;
16-
import java.io.FileNotFoundException;
17-
import java.io.FileReader;
18-
import java.util.jar.Attributes;
18+
import com.ericsson.eiffel.remrem.protocol.ValidationResult;
19+
import com.ericsson.eiffel.remrem.semantics.events.EiffelActivityFinishedEvent;
20+
import com.ericsson.eiffel.remrem.semantics.events.EiffelArtifactPublishedEvent;
21+
import com.google.gson.JsonIOException;
22+
import com.google.gson.JsonObject;
23+
import com.google.gson.JsonParser;
24+
import com.google.gson.JsonSyntaxException;
1925

2026
public class ServiceTest {
2127

@@ -97,4 +103,23 @@ private void testGenerateMsg(String msgType, String fileName) {
97103
Assert.assertFalse(false);
98104
}
99105
}
106+
107+
@Test
108+
public void validateMessage() {
109+
File file = new File(getClass().getClassLoader().getResource("output/ActivityFinished.json").getFile());
110+
JsonObject input;
111+
ValidationResult msg = null;
112+
try {
113+
input = parser.parse(new FileReader(file)).getAsJsonObject();
114+
msg = service.validateMsg(ACTIVITY_FINISHED, input);
115+
} catch (JsonIOException e) {
116+
e.printStackTrace();
117+
} catch (JsonSyntaxException e) {
118+
e.printStackTrace();
119+
} catch (FileNotFoundException e) {
120+
e.printStackTrace();
121+
}
122+
Assert.assertNotNull(msg);
123+
Assert.assertTrue(msg.isValid());
124+
}
100125
}

0 commit comments

Comments
 (0)