### Question:
ColorRGBA extends Message { public static ColorRGBA fromJsonObject(JsonObject jsonObject) { float r = jsonObject.containsKey(ColorRGBA.FIELD_R) ? (float) jsonObject .getJsonNumber(ColorRGBA.FIELD_R).doubleValue() : 0f; float g = jsonObject.containsKey(ColorRGBA.FIELD_G) ? (float) jsonObject .getJsonNumber(ColorRGBA.FIELD_G).doubleValue() : 0f; float b = jsonObject.containsKey(ColorRGBA.FIELD_B) ? (float) jsonObject .getJsonNumber(ColorRGBA.FIELD_B).doubleValue() : 0f; float a = jsonObject.containsKey(ColorRGBA.FIELD_A) ? (float) jsonObject .getJsonNumber(ColorRGBA.FIELD_A).doubleValue() : 0f; return new ColorRGBA(r, g, b, a); } ColorRGBA();  ColorRGBA(float r, float g, float b);  ColorRGBA(float r, float g, float b, float a); float getR(); float getG(); float getB(); float getA(); Color toColor(); @Override ColorRGBA clone(); static ColorRGBA fromColor(Color c); static ColorRGBA fromJsonString(java.lang.String jsonString); static ColorRGBA fromMessage(Message m); static ColorRGBA fromJsonObject(JsonObject jsonObject); static final java.lang.String FIELD_R; static final java.lang.String FIELD_G; static final java.lang.String FIELD_B; static final java.lang.String FIELD_A; static final java.lang.String TYPE; }### Answer:
@Test public void testFromJsonObject() { JsonObject jsonObject = Json.createObjectBuilder() .add(ColorRGBA.FIELD_R, c2.getR()) .add(ColorRGBA.FIELD_G, c2.getG()) .add(ColorRGBA.FIELD_B, c2.getB()) .add(ColorRGBA.FIELD_A, c2.getA()).build(); ColorRGBA p = ColorRGBA.fromJsonObject(jsonObject); assertEquals(c2.toString(), p.toString()); assertEquals(c2.toJsonObject(), p.toJsonObject()); assertEquals(c2.getMessageType(), p.getMessageType()); assertEquals(c2.getR(), p.getR(), 0); assertEquals(c2.getG(), p.getG(), 0); assertEquals(c2.getB(), p.getB(), 0); assertEquals(c2.getA(), p.getA(), 0); assertNotSame(c2, p); assertNotSame(c2.toString(), p.toString()); assertNotSame(c2.toJsonObject(), p.toJsonObject()); }