package com.captaindebug.producerconsumer; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.junit.Test; public class MatchTest { private static final String MATCH_NAME = "Man City vs Stoke"; private static final String UPDATE_TEXT = "This is an update"; private static final String DATA1 = "55:30 " + UPDATE_TEXT; private static final String DATA2 = "25:00 " + UPDATE_TEXT; private static final String DATA3 = UPDATE_TEXT; private Match instance; @Test public void testGetUpdates() { List<String> arg1 = Arrays.asList(DATA1); instance = new Match(MATCH_NAME, arg1); List<Message> results = instance.getUpdates(); assertEquals(1, results.size()); final long expectedTime = 55500; Message result = results.get(0); assertEquals(expectedTime, result.getTime()); assertEquals(UPDATE_TEXT, result.getMessageText()); assertEquals(MATCH_NAME, result.getName()); } @Test(expected = NumberFormatException.class) public void testGetUpdates_with_missing_time() { List<String> arg1 = Arrays.asList(DATA3); instance = new Match(MATCH_NAME, arg1); } @Test public void testGetUpdates_and_check_sort_order1() { List<String> arg1 = Arrays.asList(DATA1, DATA2); instance = new Match(MATCH_NAME, arg1); List<Message> results = instance.getUpdates(); assertEquals(2, results.size()); long expectedTime = 25000; Message result = results.get(0); assertEquals(expectedTime, result.getTime()); assertEquals(UPDATE_TEXT, result.getMessageText()); assertEquals(MATCH_NAME, result.getName()); expectedTime = 55500; result = results.get(1); assertEquals(expectedTime, result.getTime()); assertEquals(UPDATE_TEXT, result.getMessageText()); assertEquals(MATCH_NAME, result.getName()); } @Test public void testGetUpdates_and_check_sort_order2() { List<String> arg1 = Arrays.asList(DATA2, DATA1); instance = new Match(MATCH_NAME, arg1); List<Message> results = instance.getUpdates(); assertEquals(2, results.size()); long expectedTime = 25000; Message result = results.get(0); assertEquals(expectedTime, result.getTime()); assertEquals(UPDATE_TEXT, result.getMessageText()); assertEquals(MATCH_NAME, result.getName()); expectedTime = 55500; result = results.get(1); assertEquals(expectedTime, result.getTime()); assertEquals(UPDATE_TEXT, result.getMessageText()); assertEquals(MATCH_NAME, result.getName()); } }