1+ package com .couchbase .lite ;
2+
3+ import org .junit .Test ;
4+
5+ import static org .junit .Assert .assertFalse ;
6+ import static org .junit .Assert .assertTrue ;
7+
8+ public class BlobTest extends BaseTest {
9+ final static String kBlobTestBlob1 = "i'm blob" ;
10+ final static String kBlobTestBlob2 = "i'm blob2" ;
11+
12+ @ Test
13+ public void testEquals () throws CouchbaseLiteException {
14+
15+ byte [] content1a = kBlobTestBlob1 .getBytes ();
16+ byte [] content1b = kBlobTestBlob1 .getBytes ();
17+ byte [] content2a = kBlobTestBlob2 .getBytes ();
18+
19+ // store blob
20+ Blob data1a = new Blob ("text/plain" , content1a );
21+ Blob data1b = new Blob ("text/plain" , content1b );
22+ Blob data1c = new Blob ("text/plain" , content1a ); // not store in db
23+ Blob data2a = new Blob ("text/plain" , content2a );
24+
25+ assertTrue (data1a .equals (data1b ));
26+ assertTrue (data1b .equals (data1a ));
27+ assertFalse (data1a .equals (data2a ));
28+ assertFalse (data1b .equals (data2a ));
29+ assertFalse (data2a .equals (data1a ));
30+ assertFalse (data2a .equals (data1b ));
31+
32+ MutableDocument mDoc = new MutableDocument ();
33+ mDoc .setBlob ("blob1a" , data1a );
34+ mDoc .setBlob ("blob1b" , data1b );
35+ mDoc .setBlob ("blob2a" , data2a );
36+ Document doc = save (mDoc );
37+
38+ Blob blob1a = doc .getBlob ("blob1a" );
39+ Blob blob1b = doc .getBlob ("blob1b" );
40+ Blob blob2a = doc .getBlob ("blob2a" );
41+
42+ assertTrue (blob1a .equals (blob1b ));
43+ assertTrue (blob1b .equals (blob1a ));
44+ assertFalse (blob1a .equals (blob2a ));
45+ assertFalse (blob1b .equals (blob2a ));
46+ assertFalse (blob2a .equals (blob1a ));
47+ assertFalse (blob2a .equals (blob1b ));
48+
49+ assertTrue (blob1a .equals (data1c ));
50+ assertTrue (data1c .equals (blob1a ));
51+ }
52+ @ Test
53+ public void testHashCode () throws CouchbaseLiteException {
54+ byte [] content1a = kBlobTestBlob1 .getBytes ();
55+ byte [] content1b = kBlobTestBlob1 .getBytes ();
56+ byte [] content2a = kBlobTestBlob2 .getBytes ();
57+
58+ // store blob
59+ Blob data1a = new Blob ("text/plain" , content1a );
60+ Blob data1b = new Blob ("text/plain" , content1b );
61+ Blob data1c = new Blob ("text/plain" , content1a ); // not store in db
62+ Blob data2a = new Blob ("text/plain" , content2a );
63+
64+ assertTrue (data1a .hashCode () == data1b .hashCode ());
65+ assertTrue (data1b .hashCode () == data1a .hashCode ());
66+ assertFalse (data1a .hashCode () == data2a .hashCode ());
67+ assertFalse (data1b .hashCode () == data2a .hashCode ());
68+ assertFalse (data2a .hashCode () == data1a .hashCode ());
69+ assertFalse (data2a .hashCode () == data1b .hashCode ());
70+
71+ MutableDocument mDoc = new MutableDocument ();
72+ mDoc .setBlob ("blob1a" , data1a );
73+ mDoc .setBlob ("blob1b" , data1b );
74+ mDoc .setBlob ("blob2a" , data2a );
75+ Document doc = save (mDoc );
76+
77+ Blob blob1a = doc .getBlob ("blob1a" );
78+ Blob blob1b = doc .getBlob ("blob1b" );
79+ Blob blob2a = doc .getBlob ("blob2a" );
80+
81+ assertTrue (blob1a .hashCode () == blob1b .hashCode ());
82+ assertTrue (blob1b .hashCode () == blob1a .hashCode ());
83+ assertFalse (blob1a .hashCode () == blob2a .hashCode ());
84+ assertFalse (blob1b .hashCode () == blob2a .hashCode ());
85+ assertFalse (blob2a .hashCode () == blob1a .hashCode ());
86+ assertFalse (blob2a .hashCode () == blob1b .hashCode ());
87+
88+ assertTrue (blob1a .hashCode () == data1c .hashCode ());
89+ assertTrue (data1c .hashCode () == blob1a .hashCode ());
90+ }
91+ }
0 commit comments