~ubuntu-branches/debian/stretch/protobuf/stretch

« back to all changes in this revision

Viewing changes to java/src/test/java/com/google/protobuf/LazyFieldLiteTest.java

  • Committer: Package Import Robot
  • Author(s): Robert S. Edmonds
  • Date: 2014-09-11 22:50:10 UTC
  • mfrom: (10.1.9 experimental)
  • Revision ID: package-import@ubuntu.com-20140911225010-wt4yo9dpc1fzuq5g
Tags: 2.6.0-3
Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Protocol Buffers - Google's data interchange format
 
2
// Copyright 2008 Google Inc.  All rights reserved.
 
3
// http://code.google.com/p/protobuf/
 
4
//
 
5
// Redistribution and use in source and binary forms, with or without
 
6
// modification, are permitted provided that the following conditions are
 
7
// met:
 
8
//
 
9
//     * Redistributions of source code must retain the above copyright
 
10
// notice, this list of conditions and the following disclaimer.
 
11
//     * Redistributions in binary form must reproduce the above
 
12
// copyright notice, this list of conditions and the following disclaimer
 
13
// in the documentation and/or other materials provided with the
 
14
// distribution.
 
15
//     * Neither the name of Google Inc. nor the names of its
 
16
// contributors may be used to endorse or promote products derived from
 
17
// this software without specific prior written permission.
 
18
//
 
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
23
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
30
 
 
31
package com.google.protobuf;
 
32
 
 
33
import protobuf_unittest.UnittestProto.TestAllExtensions;
 
34
import protobuf_unittest.UnittestProto.TestAllTypes;
 
35
 
 
36
import java.io.IOException;
 
37
import junit.framework.TestCase;
 
38
 
 
39
/**
 
40
 * Unit test for {@link LazyFieldLite}.
 
41
 *
 
42
 * @author xiangl@google.com (Xiang Li)
 
43
 */
 
44
public class LazyFieldLiteTest extends TestCase {
 
45
 
 
46
  public void testGetValue() {
 
47
    MessageLite message = TestUtil.getAllSet();
 
48
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
49
    assertEquals(message, lazyField.getValue(TestAllTypes.getDefaultInstance()));
 
50
    changeValue(lazyField);
 
51
    assertNotEqual(message, lazyField.getValue(TestAllTypes.getDefaultInstance()));
 
52
  }
 
53
 
 
54
  public void testGetValueEx() throws Exception {
 
55
    TestAllExtensions message = TestUtil.getAllExtensionsSet();
 
56
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
57
    assertEquals(message, lazyField.getValue(TestAllExtensions.getDefaultInstance()));
 
58
    changeValue(lazyField);
 
59
    assertNotEqual(message, lazyField.getValue(TestAllExtensions.getDefaultInstance()));
 
60
  }
 
61
 
 
62
  public void testSetValue() {
 
63
    MessageLite message = TestUtil.getAllSet();
 
64
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
65
    changeValue(lazyField);
 
66
    assertNotEqual(message, lazyField.getValue(TestAllTypes.getDefaultInstance()));
 
67
    message = lazyField.getValue(TestAllTypes.getDefaultInstance());
 
68
    changeValue(lazyField);
 
69
    assertEquals(message, lazyField.getValue(TestAllTypes.getDefaultInstance()));
 
70
  }
 
71
 
 
72
  public void testSetValueEx() throws Exception {
 
73
    TestAllExtensions message = TestUtil.getAllExtensionsSet();
 
74
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
75
    changeValue(lazyField);
 
76
    assertNotEqual(message, lazyField.getValue(TestAllExtensions.getDefaultInstance()));
 
77
    MessageLite value = lazyField.getValue(TestAllExtensions.getDefaultInstance());
 
78
    changeValue(lazyField);
 
79
    assertEquals(value, lazyField.getValue(TestAllExtensions.getDefaultInstance()));
 
80
  }
 
81
 
 
82
  public void testGetSerializedSize() {
 
83
    MessageLite message = TestUtil.getAllSet();
 
84
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
85
    assertEquals(message.getSerializedSize(), lazyField.getSerializedSize());
 
86
    changeValue(lazyField);
 
87
    assertNotEqual(message.getSerializedSize(), lazyField.getSerializedSize());
 
88
  }
 
89
 
 
90
  public void testGetSerializedSizeEx() throws Exception {
 
91
    TestAllExtensions message = TestUtil.getAllExtensionsSet();
 
92
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
93
    assertEquals(message.getSerializedSize(), lazyField.getSerializedSize());
 
94
    changeValue(lazyField);
 
95
    assertNotEqual(message.getSerializedSize(), lazyField.getSerializedSize());
 
96
  }
 
97
 
 
98
  public void testGetByteString() {
 
99
    MessageLite message = TestUtil.getAllSet();
 
100
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
101
    assertEquals(message.toByteString(), lazyField.toByteString());
 
102
    changeValue(lazyField);
 
103
    assertNotEqual(message.toByteString(), lazyField.toByteString());
 
104
  }
 
105
 
 
106
  public void testGetByteStringEx() throws Exception {
 
107
    TestAllExtensions message = TestUtil.getAllExtensionsSet();
 
108
    LazyFieldLite lazyField = createLazyFieldLiteFromMessage(message);
 
109
    assertEquals(message.toByteString(), lazyField.toByteString());
 
110
    changeValue(lazyField);
 
111
    assertNotEqual(message.toByteString(), lazyField.toByteString());
 
112
  }
 
113
 
 
114
 
 
115
  // Help methods.
 
116
 
 
117
  private LazyFieldLite createLazyFieldLiteFromMessage(MessageLite message) {
 
118
    ByteString bytes = message.toByteString();
 
119
    return new LazyFieldLite(TestUtil.getExtensionRegistry(), bytes);
 
120
  }
 
121
 
 
122
  private void changeValue(LazyFieldLite lazyField) {
 
123
    TestAllTypes.Builder builder = TestUtil.getAllSet().toBuilder();
 
124
    builder.addRepeatedBool(true);
 
125
    MessageLite newMessage = builder.build();
 
126
    lazyField.setValue(newMessage);
 
127
  }
 
128
 
 
129
  private void assertNotEqual(Object unexpected, Object actual) {
 
130
    assertFalse(unexpected == actual
 
131
        || (unexpected != null && unexpected.equals(actual)));
 
132
  }
 
133
 
 
134
}