package org.ovirt.engine.core.dal.dbbroker.auditloghandling;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.RETURNS_DEFAULTS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
public class MessageResolverTest {
@Test
public void testResolveUnknownVariable() {
final String message = "This is my ${Variable}";
final String expectedResolved = String.format("This is my %1s", MessageResolver.UNKNOWN_VARIABLE_VALUE);
Map<String, String> values = Collections.emptyMap();
String resolvedMessage = MessageResolver.resolveMessage(message, values);
assertEquals(expectedResolved, resolvedMessage);
}
@Test
public void testResolveKnownVariable() {
final String message = "This is my ${Variable}";
final String expectedResolved = "This is my value";
Map<String, String> values = Collections.singletonMap("variable", "value");
String resolvedMessage = MessageResolver.resolveMessage(message, values);
assertEquals(expectedResolved, resolvedMessage);
}
@Test
public void testResolveCombinedMessage() {
final String message =
"${first} equals one, ${second} equals two, '${blank}' equals blank and ${nonExist} is unknown";
final String expectedResolved =
String.format("one equals one, two equals two, ' ' equals blank and %1s is unknown",
MessageResolver.UNKNOWN_VARIABLE_VALUE);
Map<String, String> values = new HashMap<>();
values.put("first", "one");
values.put("second", "two");
values.put("blank", " ");
String resolvedMessage = MessageResolver.resolveMessage(message, values);
assertEquals(expectedResolved, resolvedMessage);
}
@Test
public void testResolveAuditLogableBase() {
final String vdsName = "TestVDS";
final String vmName = "TestVM";
final String message =
"The VM name is ${vmName}, the VDS name is ${vdsName} and the template name is ${vmTemplateName}";
final String expectedResolved =
String.format("The VM name is %1s, the VDS name is %2s and the template name is %3s",
vmName,
vdsName,
MessageResolver.UNKNOWN_VARIABLE_VALUE);
AuditLogableBase logable = mock(AuditLogableBase.class, RETURNS_DEFAULTS);
when(logable.getVdsName()).thenReturn("TestVDS");
when(logable.getVmName()).thenReturn("TestVM");
String resolvedMessage = MessageResolver.resolveMessage(message, logable);
assertEquals(expectedResolved, resolvedMessage);
}
}