@Override public Message memento() { return new ObjectMessage(obj); }
@Test public void testNull() { final ObjectMessage msg = new ObjectMessage(null); final String result = msg.getFormattedMessage(); assertEquals("null", result); }
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final ObjectMessage that = (ObjectMessage) o; return obj == null ? that.obj == null : equalObjectsOrStrings(obj, that.obj); }
@Test public void formatTo_usesCachedMessageString() throws Exception { final StringBuilder charSequence = new StringBuilder("initial value"); final ObjectMessage message = new ObjectMessage(charSequence); assertEquals("initial value", message.getFormattedMessage()); charSequence.setLength(0); charSequence.append("different value"); final StringBuilder result = new StringBuilder(); message.formatTo(result); assertEquals("initial value", result.toString()); } }
/** * Returns the object formatted using its toString method. * * @return the String representation of the object. */ @Override public String getFormat() { return getFormattedMessage(); }
@Override public String toString() { return getFormattedMessage(); }
@Override public Message newMessage(final Object message) { return new ObjectMessage(message); }
@Test public void testNotNull() { final String testMsg = "Test message {}"; final ObjectMessage msg = new ObjectMessage(testMsg); final String result = msg.getFormattedMessage(); assertEquals(testMsg, result); }
/** * Returns the object formatted using its toString method. * * @return the String representation of the object. */ @Override public String getFormat() { return getFormattedMessage(); }
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final ObjectMessage that = (ObjectMessage) o; return obj == null ? that.obj == null : equalObjectsOrStrings(obj, that.obj); }
@Override public ObjectMessage get() { return new ObjectMessage(1234567890); } });
@Test public void testSafeAfterGetFormattedMessageIsCalled() { // LOG4J2-763 final Mutable param = new Mutable().set("abc"); final ObjectMessage msg = new ObjectMessage(param); // modify parameter after calling msg.getFormattedMessage msg.getFormattedMessage(); param.set("XYZ"); final String actual = msg.getFormattedMessage(); assertEquals("Should use initial param value", "abc", actual); }
@Override public String toString() { return getFormattedMessage(); }
@Override public Message get() { return new ObjectMessage(1); } }, new Supplier<Message>() {
@Test public void testUnsafeWithMutableParams() { // LOG4J2-763 final Mutable param = new Mutable().set("abc"); final ObjectMessage msg = new ObjectMessage(param); // modify parameter before calling msg.getFormattedMessage param.set("XYZ"); final String actual = msg.getFormattedMessage(); assertEquals("Expected most recent param value", "XYZ", actual); }
@Override public Message get() { return new ObjectMessage(2); } });
@Override public boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { objectCount++; return isEnabled(level, marker, new ObjectMessage(data), t); }
@Override public boolean isEnabled(final Level level, final Marker marker, final Object data, final Throwable t) { objectCount++; return isEnabled(level, marker, new ObjectMessage(data), t); }
@Test public void testSerializeWithSerializableParam() { final BigDecimal big = BigDecimal.valueOf(123.456); final ObjectMessage msg = new ObjectMessage(big); final ObjectMessage other = SerialUtil.deserialize(SerialUtil.serialize(msg)); assertEquals(msg, other); }
@Test public void testDeserializeNonSerializableParamEqualIfToStringSame() { class NonSerializable { @Override public boolean equals(final Object other) { return other instanceof NonSerializable; // a very lenient equals() } } final NonSerializable nonSerializable = new NonSerializable(); assertFalse(nonSerializable instanceof Serializable); final ObjectMessage msg = new ObjectMessage(nonSerializable); final ObjectMessage other = SerialUtil.deserialize(SerialUtil.serialize(msg)); assertEquals(msg, other); assertEquals(other, msg); }