Crossfire JXClient, Trunk
BufferTest.java
Go to the documentation of this file.
1 package com.realtime.crossfire.jxclient.gui.log;
2 
4 import java.awt.Color;
5 import org.jetbrains.annotations.NotNull;
6 import org.junit.Assert;
7 import org.junit.Test;
8 
12 @SuppressWarnings("JavaDoc")
13 public class BufferTest {
14 
15  @Test
16  public void addLine_lines_addsLines() {
17  final TestBuffer buffer = new TestBuffer(3, 200, 10);
18 
19  addLine(buffer, "abc");
20  Assert.assertEquals("[0,9,abc]\n", format(buffer));
21 
22  addLine(buffer, "def", "ghi");
23  Assert.assertEquals("[0,9,abc]\n"+"[0,9,def][15,9,ghi]\n", format(buffer));
24 
25  addLine(buffer, "jkl");
26  Assert.assertEquals("[0,9,abc]\n"+"[0,9,def][15,9,ghi]\n"+"[0,9,jkl]\n", format(buffer));
27 
28  addLine(buffer, "mno", "pqr");
29  Assert.assertEquals("[0,9,abc]\n"+"[0,9,def][15,9,ghi]\n"+"[0,9,jkl]\n"+"[0,9,mno][15,9,pqr]\n", format(buffer));
30  }
31 
32  @Test
34  final TestBuffer buffer = new TestBuffer(3, 145, 10);
35 
36  addLine(buffer, "a", "b", "c", "d", "e");
37  Assert.assertEquals("[0,9,a][5,9,b][10,9,c][15,9,d][20,9,e]\n", format(buffer));
38  }
39 
40  @Test
42  final TestBuffer buffer = new TestBuffer(3, 200, 10);
43 
44  addLine(buffer, "abc");
45  buffer.prune();
46  Assert.assertEquals("[0,9,abc]\n", format(buffer));
47 
48  addLine(buffer, "def", "ghi");
49  buffer.prune();
50  Assert.assertEquals("[0,9,abc]\n"+"[0,9,def][15,9,ghi]\n", format(buffer));
51 
52  addLine(buffer, "jkl");
53  buffer.prune();
54  Assert.assertEquals("[0,9,abc]\n"+"[0,9,def][15,9,ghi]\n"+"[0,9,jkl]\n", format(buffer));
55 
56  addLine(buffer, "mno", "pqr");
57  buffer.prune();
58  Assert.assertEquals("[0,9,def][15,9,ghi]\n"+"[0,9,jkl]\n"+"[0,9,mno][15,9,pqr]\n", format(buffer));
59  }
60 
61  @Test
63  final TestBuffer buffer = new TestBuffer(3, 250, 10);
64 
65  addLine(buffer, "abc");
66  Assert.assertEquals("0", formatLines(buffer));
67  buffer.prune();
68  Assert.assertEquals("0", formatLines(buffer));
69 
70  addLine(buffer, "def", "ghi");
71  Assert.assertEquals("0 13", formatLines(buffer));
72  buffer.prune();
73  Assert.assertEquals("0 13", formatLines(buffer));
74 
75  addLine(buffer, "jkl");
76  Assert.assertEquals("0 13 29", formatLines(buffer));
77  buffer.prune();
78  Assert.assertEquals("0 13 29", formatLines(buffer));
79 
80  addLine(buffer, "mno", "pqr");
81  Assert.assertEquals("0 13 29 42", formatLines(buffer));
82  buffer.prune();
83  Assert.assertEquals("0 16 29", formatLines(buffer));
84  }
85 
86  @Test
88  final TestBuffer buffer = new TestBuffer(3, 200, 10);
89 
91  addLineWithType(buffer, MessageType.MSG_TYPE_BOOK, MessageType.MSG_SUBTYPE_BOOK_CLASP_1, "2");
93  addLineWithType(buffer, MessageType.MSG_TYPE_BOOK, MessageType.MSG_SUBTYPE_BOOK_CLASP_1, "4");
95  Assert.assertEquals("[0,9,1]\n"+"[0,9,2]\n"+"[0,9,3]\n"+"[0,9,4]\n"+"[0,9,5]\n", format(buffer));
96  buffer.prune();
97  Assert.assertEquals("[0,9,3]\n"+"[0,9,4]\n"+"[0,9,5]\n", format(buffer));
98  }
99 
100  private static void addLine(@NotNull final TestBuffer buffer, @NotNull final String @NotNull ... text) {
101  addLineWithType(buffer, MessageType.MSG_TYPE_BOOK, MessageType.MSG_SUBTYPE_BOOK_CLASP_1, text);
102  }
103 
104  private static void addLineWithType(@NotNull final TestBuffer buffer, final int type, final int subtype, @NotNull final String @NotNull ... text) {
105  final Line line = new Line(type, subtype, buffer.newTextSegment("timestamp ", false, false, false, FontID.PRINT, Color.BLACK, Color.BLACK));
106  for (final String word : text) {
107  buffer.addTextSegment(line, word, false, false, false, FontID.PRINT, Color.BLACK, Color.BLACK);
108  }
109  buffer.addLine(line);
110  }
111 
112  @NotNull
113  private static String format(@NotNull final TestBuffer buffer) {
114  final StringBuilder sb = new StringBuilder();
115  synchronized (buffer.getSyncObject()) {
116  for (final Line line : buffer.lines(0)) {
117  for (final TextSegment segment : line.segments()) {
118  sb.append(segment.format());
119  }
120  sb.append("\n");
121  }
122  }
123  return sb.toString();
124  }
125 
126  @NotNull
127  private static String formatLines(@NotNull final TestBuffer buffer) {
128  final StringBuilder sb = new StringBuilder();
129  synchronized (buffer.getSyncObject()) {
130  for (final Line line : buffer.lines(0)) {
131  if (sb.length() > 0) {
132  sb.append(" ");
133  }
134  sb.append(line.getStartPosition());
135  }
136  }
137  return sb.toString();
138  }
139 
140 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.gui.log.BufferTest.prune_lines_prunesExcessLines
void prune_lines_prunesExcessLines()
Definition: BufferTest.java:62
com.realtime.crossfire.jxclient.gui.log.BufferTest.format
static String format(@NotNull final TestBuffer buffer)
Definition: BufferTest.java:113
com.realtime.crossfire.jxclient.gui.log.Line
Definition: Line.java:39
com.realtime.crossfire.jxclient.gui.log.TextSegment
Definition: TextSegment.java:40
com.realtime.crossfire.jxclient.gui.log.BufferTest.prune_pos_prunesExcessLines
void prune_pos_prunesExcessLines()
Definition: BufferTest.java:41
com.realtime.crossfire.jxclient.protocol
Definition: MagicMap.java:23
com.realtime.crossfire.jxclient.protocol.MessageType
Definition: MessageType.java:33
com.realtime.crossfire.jxclient.protocol.MessageType.MSG_SUBTYPE_JXCLIENT_COMMAND
static final int MSG_SUBTYPE_JXCLIENT_COMMAND
Definition: MessageType.java:479
com.realtime.crossfire.jxclient.protocol.MessageType.MSG_TYPE_JXCLIENT
static final int MSG_TYPE_JXCLIENT
Definition: MessageType.java:136
com.realtime.crossfire.jxclient.gui.log.FontID
Definition: FontID.java:29
com.realtime.crossfire.jxclient.gui.log.BufferTest.addLine_lines_addsLines
void addLine_lines_addsLines()
Definition: BufferTest.java:16
com.realtime.crossfire.jxclient.gui.log.BufferTest.prune_hideSentCommands_prunesExcessLines
void prune_hideSentCommands_prunesExcessLines()
Definition: BufferTest.java:87
com.realtime.crossfire.jxclient.gui.log.BufferTest
Definition: BufferTest.java:13
com.realtime.crossfire.jxclient.gui.log.FontID.PRINT
PRINT
Definition: FontID.java:34
com.realtime.crossfire.jxclient.gui.log.BufferTest.addLineWithType
static void addLineWithType(@NotNull final TestBuffer buffer, final int type, final int subtype, @NotNull final String @NotNull ... text)
Definition: BufferTest.java:104
com.realtime.crossfire.jxclient.gui.log.BufferTest.addLine
static void addLine(@NotNull final TestBuffer buffer, @NotNull final String @NotNull ... text)
Definition: BufferTest.java:100
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.gui.log.BufferTest.formatLines
static String formatLines(@NotNull final TestBuffer buffer)
Definition: BufferTest.java:127
com
com.realtime.crossfire.jxclient.gui.log.TestBuffer
Definition: TestBuffer.java:11
com.realtime.crossfire.jxclient.protocol.MessageType.MSG_SUBTYPE_BOOK_CLASP_1
static final int MSG_SUBTYPE_BOOK_CLASP_1
Definition: MessageType.java:145
com.realtime.crossfire.jxclient.gui.log.Buffer.prune
void prune()
Definition: Buffer.java:232
com.realtime.crossfire.jxclient.protocol.MessageType.MSG_TYPE_BOOK
static final int MSG_TYPE_BOOK
Definition: MessageType.java:38
com.realtime.crossfire.jxclient.gui.log.BufferTest.addLine_longLine_wrapsCorrectly
void addLine_longLine_wrapsCorrectly()
Definition: BufferTest.java:33