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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
package cgeo.geocaching;
import static org.assertj.core.api.Assertions.assertThat;
import cgeo.geocaching.connector.gc.GCConstants;
import cgeo.geocaching.list.StoredList;
import org.apache.commons.lang3.StringUtils;
import junit.framework.TestCase;
public class PersonalNoteTest extends TestCase {
public static void testParse() {
final String testString = "Simple cgeo note\n--\nSimple provider note";
Geocache cache = new Geocache();
cache.setPersonalNote(testString);
PersonalNote parsedNote = new PersonalNote(cache);
assertThat(parsedNote.toString()).isEqualTo(testString);
assertPersonalNote(parsedNote, "Simple cgeo note", "Simple provider note");
}
public static void testParseProviderOnly() {
final String testString = "Simple provider note";
Geocache cache = new Geocache();
cache.setPersonalNote(testString);
PersonalNote parsedNote = new PersonalNote(cache);
assertThat(parsedNote.toString()).isEqualTo(testString);
assertPersonalNote(parsedNote, null, "Simple provider note");
}
public static void testLocalNoteExceedsLimit() {
String testString = StringUtils.repeat("x", GCConstants.PERSONAL_NOTE_MAX_CHARS + 1);
Geocache truncCache = new Geocache();
truncCache.setPersonalNote(testString.substring(0, GCConstants.PERSONAL_NOTE_MAX_CHARS));
PersonalNote parsedNote = new PersonalNote(truncCache);
Geocache exceedingCache = new Geocache();
exceedingCache.setListId(StoredList.STANDARD_LIST_ID); // stored
exceedingCache.setPersonalNote(testString);
PersonalNote otherNote = new PersonalNote(exceedingCache);
PersonalNote result = parsedNote.mergeWith(otherNote);
assertPersonalNote(result, null, testString);
}
public static void testParseCgeoOnly() {
final String testString = "Simple cgeo note";
Geocache cache = new Geocache();
cache.setPersonalNote(testString);
PersonalNote parsedNote = new PersonalNote(cache);
assertThat(parsedNote.toString()).isEqualTo("Simple cgeo note");
assertPersonalNote(parsedNote, null, "Simple cgeo note");
}
public static void testSimpleMerge() {
Geocache cache1 = new Geocache(); // not stored
cache1.setPersonalNote("Simple cgeo note\n--\nSimple provider note");
PersonalNote myNote = new PersonalNote(cache1);
Geocache cache2 = new Geocache();
cache2.setListId(StoredList.STANDARD_LIST_ID); // stored
cache2.setPersonalNote("cgeo note\n--\nProvider note");
PersonalNote otherNote = new PersonalNote(cache2);
PersonalNote result = myNote.mergeWith(otherNote);
assertThat(result.toString()).isEqualTo("cgeo note\n--\nSimple provider note");
assertPersonalNote(result, "cgeo note", "Simple provider note");
}
public static void testMixedMerge() {
Geocache cache1 = new Geocache(); // not stored
cache1.setPersonalNote("Simple cgeo note\n--\nSimple provider note");
PersonalNote myNote = new PersonalNote(cache1);
Geocache cache2 = new Geocache();
cache2.setListId(StoredList.STANDARD_LIST_ID); // stored
cache2.setPersonalNote("Provider note");
PersonalNote otherNote = new PersonalNote(cache2);
PersonalNote result = myNote.mergeWith(otherNote);
assertThat(result.toString()).isEqualTo("Simple cgeo note\n--\nSimple provider note");
assertPersonalNote(result, "Simple cgeo note", "Simple provider note");
result = otherNote.mergeWith(myNote);
assertThat(result.toString()).isEqualTo("Simple cgeo note\n--\nProvider note");
assertPersonalNote(result, "Simple cgeo note", "Provider note");
}
private static void assertPersonalNote(final PersonalNote note, final String cgeoNote, final String providerNote) {
assertThat(note.getCgeoNote()).isEqualTo(cgeoNote);
assertThat(note.getProviderNote()).isEqualTo(providerNote);
}
}
|