diff options
Diffstat (limited to 'logserver/src/test/java/com/yahoo/logserver/handlers/lasterrorsholder/LastErrorsHolderTestCase.java')
-rw-r--r-- | logserver/src/test/java/com/yahoo/logserver/handlers/lasterrorsholder/LastErrorsHolderTestCase.java | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/logserver/src/test/java/com/yahoo/logserver/handlers/lasterrorsholder/LastErrorsHolderTestCase.java b/logserver/src/test/java/com/yahoo/logserver/handlers/lasterrorsholder/LastErrorsHolderTestCase.java deleted file mode 100644 index 22fa7d5cf30..00000000000 --- a/logserver/src/test/java/com/yahoo/logserver/handlers/lasterrorsholder/LastErrorsHolderTestCase.java +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.logserver.handlers.lasterrorsholder; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.yahoo.log.InvalidLogFormatException; -import com.yahoo.log.LogLevel; -import com.yahoo.log.LogMessage; -import com.yahoo.logserver.Server; -import com.yahoo.text.Utf8; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import java.io.IOException; -import java.io.StringWriter; -import java.net.InetSocketAddress; -import java.nio.ByteBuffer; -import java.nio.channels.SocketChannel; -import java.time.Duration; -import java.time.Instant; - -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - -public class LastErrorsHolderTestCase { - - private static final int serverPort = 18324; - private static final int lastErrorsHolderPort = 18326; - private Server server; - private Thread serverThread; - private LastErrorsHolder lastErrorsHolder; - - @Before - public void setUp() throws InterruptedException, IOException { - server = Server.getInstance(); - server.initialize(serverPort); - serverThread = new Thread(server); - serverThread.start(); - lastErrorsHolder = new LastErrorsHolder(lastErrorsHolderPort); - } - - @After - public void tearDown() throws InterruptedException { - if (serverThread != null) { - serverThread.interrupt(); - serverThread.join(); - } - if (lastErrorsHolder != null) lastErrorsHolder.close(); - } - - public String connectAndGetLogMessages() throws InterruptedException, IOException { - SocketChannel socket = null; - Instant start = Instant.now(); - while (Instant.now().isBefore(start.plus(Duration.ofMinutes(1)))) { - try { - InetSocketAddress address = new InetSocketAddress("localhost", lastErrorsHolderPort); - socket = SocketChannel.open(address); - break; - } catch (Exception e) { - Thread.sleep(100); - } - } - if (socket == null) { - throw new RuntimeException("Could not connect to server"); - } - - ByteBuffer buf = ByteBuffer.allocateDirect(10000); - int bytesRead = socket.read(buf); - byte[] bytes = new byte[bytesRead]; - buf.position(0); - buf.get(bytes); - socket.close(); - - return Utf8.toString(bytes); - } - - - @Test - public void testLastErrorsHolder() throws IOException, InvalidLogFormatException, InterruptedException { - LastErrorsHolder.Message logMessage1 = new LastErrorsHolder.Message(1433996283, "host1.yahoo.com", "container", LogLevel.ERROR - .getName(), "foo"); - LastErrorsHolder.Message logMessage2 = new LastErrorsHolder.Message(1433996284, "host2.yahoo.com", "container", LogLevel.ERROR - .getName(), "bar"); - LastErrorsHolder.Message logMessage3 = new LastErrorsHolder.Message(1433996285, "host2.yahoo.com", "container", LogLevel.INFO - .getName(), "bar"); - - LastErrorsHolder.Messages messages = new LastErrorsHolder.Messages(); - - // No log messages yet - String logs = connectAndGetLogMessages(); - final ObjectMapper mapper = new ObjectMapper(); - StringWriter stringWriter = new StringWriter(); - mapper.writeValue(stringWriter, messages); - assertThat(logs, is(stringWriter.toString())); - - // Three messages, one is at level INFO - lastErrorsHolder.doHandle(createLogMessage(logMessage1)); - lastErrorsHolder.doHandle(createLogMessage(logMessage2)); - lastErrorsHolder.doHandle(createLogMessage(logMessage3)); - messages = new LastErrorsHolder.Messages(); - messages.addMessage(logMessage1); - messages.addMessage(logMessage2); - messages.setNumberOfErrors(2); - // Not adding logMessage3, since it is at level INFO - - logs = connectAndGetLogMessages(); - stringWriter = new StringWriter(); - mapper.writeValue(stringWriter, messages); - assertThat(logs, is(stringWriter.toString())); - } - - private LogMessage createLogMessage(LastErrorsHolder.Message message) throws InvalidLogFormatException { - return createLogMessage(message.getTime(), message.getHostname(), message.getService(), message.getLogLevel(), message - .getMessage()); - } - - private LogMessage createLogMessage(long time, String hostname, String service, String logLevel, String message) throws InvalidLogFormatException { - return LogMessage.parseNativeFormat(String.format("%d\t%s\t1/1\t%s\tcomponent\t%s\t%s", time, hostname, service, logLevel - .toLowerCase(), message)); - } - -} |