Skip to content
This repository has been archived by the owner on Apr 30, 2021. It is now read-only.

Commit

Permalink
added new test case and fixed corresponding code
Browse files Browse the repository at this point in the history
  • Loading branch information
cedric05 committed Mar 7, 2019
1 parent 2f16cd2 commit f4959c8
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/main/java/schema/GenericTranslator.java
Expand Up @@ -94,15 +94,15 @@ private SetterImpl getDestMethod(JsonElement destDescriptor, @SuppressWarnings("
// if descriptor is string itself, then value will be field name
if (!destDescriptor.isJsonObject()) {
String valueString = destDescriptor.getAsString();
destMethodName = StringUtils.capitalise(valueString);
destMethodName = valueString;
} else {
// in else case descriptor should contain destination or destinantion method
// name
JsonObject descriptor = destDescriptor.getAsJsonObject();
JsonElement destJsonElement = descriptor.get(DESTINATION);
if (destJsonElement != null) {
// destination is defined
destMethodName = StringUtils.capitalise(destJsonElement.getAsString());
destMethodName = destJsonElement.getAsString();
} else {
// destiantion is not defined, going with destination method name
destMethodName = descriptor.get(DESTINATION_METHOD).getAsString();
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/schema/SetterImpl.java
Expand Up @@ -20,7 +20,7 @@ public void intialize(Class DestClass, String name)
Class finalClass = DestClass;
methods = new ArrayList<Method>();
for (String subName : names) {
String getterName = getGetterName(name);
String getterName = getGetterName(subName);
Method getterMethod = finalClass.getMethod(getterName);
Method method = finalClass.getMethod(getSetterName(subName), getterMethod.getReturnType());
methods.add(method);
Expand Down
10 changes: 10 additions & 0 deletions src/test/java/schema/Complex/Bus.java
Expand Up @@ -3,6 +3,16 @@
public class Bus{
private Tyre tyre;

public String getSeatname() {
return seatname;
}

public void setSeatname(String seatname) {
this.seatname = seatname;
}

private String seatname;

/**
* @return the tyre
*/
Expand Down
10 changes: 10 additions & 0 deletions src/test/java/schema/Complex/Bus2.java
Expand Up @@ -3,6 +3,16 @@
public class Bus2{
private String name;

public Seat getSeat() {
return seat;
}

public void setSeat(Seat seat) {
this.seat = seat;
}

private Seat seat;

/**
* @return the name
*/
Expand Down
13 changes: 13 additions & 0 deletions src/test/java/schema/Complex/Seat.java
@@ -0,0 +1,13 @@
package schema.Complex;

public class Seat {
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String name;
}
6 changes: 5 additions & 1 deletion src/test/java/schema/GenericTest.java
Expand Up @@ -107,16 +107,20 @@ public void testBus1Bus2() throws IOException, NoSuchMethodException, IllegalAcc

Tyre tyre = new Tyre();
String name = "tyrename";

tyre.setName(name);
String seatname = "finolex";

Bus bus = new Bus();
bus.setTyre(tyre);
bus.setSeatname(seatname);
// Bus.class.getClass().getDeclaredMethod(name);

Bus2 modifiedBus = new Bus2();

translator.translate(bus, modifiedBus);
System.out.printf("tyre name %s", modifiedBus.getName());
assertEquals(name, modifiedBus.getName());
assertEquals(seatname, modifiedBus.getSeat().getName());

}
}
3 changes: 2 additions & 1 deletion src/test/resources/bus-bus2-complex-schema.json
@@ -1,3 +1,4 @@
{
"tyre.name":"name"
"tyre.name":"name",
"seatname": "seat.name"
}

0 comments on commit f4959c8

Please sign in to comment.