1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.http.message;
29
30 import java.io.ByteArrayInputStream;
31 import java.io.ByteArrayOutputStream;
32 import java.io.ObjectInputStream;
33 import java.io.ObjectOutputStream;
34
35 import org.apache.http.HttpStatus;
36 import org.apache.http.HttpVersion;
37 import org.apache.http.StatusLine;
38 import org.junit.Assert;
39 import org.junit.Test;
40
41
42
43
44 public class TestStatusLine {
45
46 @Test
47 public void testConstructor() {
48 final StatusLine statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
49 Assert.assertEquals(HttpVersion.HTTP_1_1, statusline.getProtocolVersion());
50 Assert.assertEquals(HttpStatus.SC_OK, statusline.getStatusCode());
51 Assert.assertEquals("OK", statusline.getReasonPhrase());
52 }
53
54 @Test
55 public void testConstructorInvalidInput() {
56 try {
57 new BasicStatusLine(null, HttpStatus.SC_OK, "OK");
58 Assert.fail("IllegalArgumentException should have been thrown");
59 } catch (final IllegalArgumentException e) { }
60 try {
61 new BasicStatusLine(HttpVersion.HTTP_1_1, -1, "OK");
62 Assert.fail("IllegalArgumentException should have been thrown");
63 } catch (final IllegalArgumentException e) { }
64 }
65
66 @Test
67 public void testToString() throws Exception {
68 StatusLine statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
69 Assert.assertEquals("HTTP/1.1 200 OK", statusline.toString());
70 statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null);
71
72 Assert.assertEquals("HTTP/1.1 200 ", statusline.toString());
73 }
74
75 @Test
76 public void testCloning() throws Exception {
77 final BasicStatusLine orig = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
78 final BasicStatusLine clone = (BasicStatusLine) orig.clone();
79 Assert.assertEquals(orig.getReasonPhrase(), clone.getReasonPhrase());
80 Assert.assertEquals(orig.getStatusCode(), clone.getStatusCode());
81 Assert.assertEquals(orig.getProtocolVersion(), clone.getProtocolVersion());
82 }
83
84 @Test
85 public void testSerialization() throws Exception {
86 final BasicStatusLine orig = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
87 final ByteArrayOutputStream outbuffer = new ByteArrayOutputStream();
88 final ObjectOutputStream outStream = new ObjectOutputStream(outbuffer);
89 outStream.writeObject(orig);
90 outStream.close();
91 final byte[] raw = outbuffer.toByteArray();
92 final ByteArrayInputStream inBuffer = new ByteArrayInputStream(raw);
93 final ObjectInputStream inStream = new ObjectInputStream(inBuffer);
94 final BasicStatusLine clone = (BasicStatusLine) inStream.readObject();
95 Assert.assertEquals(orig.getReasonPhrase(), clone.getReasonPhrase());
96 Assert.assertEquals(orig.getStatusCode(), clone.getStatusCode());
97 Assert.assertEquals(orig.getProtocolVersion(), clone.getProtocolVersion());
98 }
99
100 }