package de.slackspace.alfa.domain; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.junit.Assert; import org.junit.Test; import com.microsoft.windowsazure.services.table.models.Entity; public class LogEntryMapperTest { LogEntryMapper cut = new LogEntryMapper(); @Test public void testMessageProcessingForAzureSdk2_5() { Entity entity = createEntity(); entity.setProperty("Message", "string", "EventName=\"FormattedMessageEvent\" FormattedMessage=\"An unexpected error occured: {0}\" Argument0=\"SqlException: Test\" TraceSource=\"WaWorkerHost.exe\""); Map<String, String> deploymentMap = new HashMap<>(); LogEntry entry = (LogEntry) cut.mapToEntry(entity, deploymentMap); Assert.assertEquals("An unexpected error occured: SqlException: Test", entry.getFormattedMessage()); } @Test public void testMessageProcessingWithMultipleArgumentsForAzureSdk2_5() { Entity entity = createEntity(); entity.setProperty("Message", "string", "EventName=\"FormattedMessageEvent\" FormattedMessage=\"ReliableDatabaseManager - Retry #{0}: Exception which caused the retry: {1}\" Argument0=\"3\" Argument1=\"Database\""); Map<String, String> deploymentMap = new HashMap<>(); LogEntry entry = (LogEntry) cut.mapToEntry(entity, deploymentMap); Assert.assertEquals("ReliableDatabaseManager - Retry #3: Exception which caused the retry: Database", entry.getFormattedMessage()); } @Test public void testMessageBug() { Entity entity = createEntity(); entity.setProperty("Message", "string", "EventName=\"FormattedMessageEvent\" FormattedMessage=\"Ignoring response file for machineIdCard '{0}' due to validation status '{1}'. SerialNumber '{2}' Protocol '{3}' FirmwareVersion '{4}' Thread '{5}'\" Argument0=\"24375\" Argument1=\"FileCorrupt\" Argument2=\"null\" Argument3=\"0\" Argument4=\"null\" Argument5=\"20\" TraceSource=\"WaWorkerHost.exe\""); Map<String, String> deploymentMap = new HashMap<>(); LogEntry entry = (LogEntry) cut.mapToEntry(entity, deploymentMap); Assert.assertEquals("Ignoring response file for machineIdCard '24375' due to validation status 'FileCorrupt'. SerialNumber 'null' Protocol '0' FirmwareVersion 'null' Thread '20 '", entry.getFormattedMessage()); } private Entity createEntity() { Entity entity = new Entity(); entity.setProperty("Level", "int", "1"); entity.setProperty("DeploymentId", "int", "123"); entity.setProperty("EventId", "int", "1"); entity.setProperty("Role", "string", "Web"); entity.setProperty("RoleInstance", "string", "Web_0"); entity.setTimestamp(new Date()); return entity; } }