Skip to content

Commit f16b769

Browse files
committed
baloise#82: fixes tests and adds documentation
1 parent 5201325 commit f16b769

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
lines changed

src/main/java/com/baloise/confluence/digitalsignature/Signature.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
import java.util.Set;
1010
import java.util.TreeSet;
1111

12+
/**
13+
* This class is deprecated and should no longer be used except for downwards compatibility, i.e. reading values from
14+
* Bandana that were written with an older version.
15+
* <br />
16+
* Use @{@link com.baloise.confluence.digitalsignature.Signature2} instead.
17+
*/
1218
@Deprecated
1319
public class Signature implements Serializable, Cloneable {
1420

@@ -199,6 +205,6 @@ public boolean hasMissingSignatures() {
199205

200206
@Override
201207
public Signature clone() throws CloneNotSupportedException{
202-
return (Signature) super.clone();
208+
return (Signature) super.clone();
203209
}
204210
}

src/test/java/com/baloise/confluence/digitalsignature/SignatureSerialisationTest.java

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.baloise.confluence.digitalsignature;
22

3+
import com.atlassian.bandana.BandanaManager;
34
import org.junit.jupiter.api.Test;
5+
import org.mockito.Mockito;
46

57
import java.io.IOException;
68
import java.io.ObjectInputStream;
@@ -9,20 +11,35 @@
911
import java.nio.file.Path;
1012
import java.nio.file.Paths;
1113
import java.util.Date;
14+
import java.util.HashSet;
1215

1316
import static org.junit.jupiter.api.Assertions.*;
17+
import static org.mockito.Matchers.any;
18+
import static org.mockito.Mockito.mock;
19+
import static org.mockito.Mockito.when;
1420

1521
class SignatureSerialisationTest {
1622
public static final String SIG_JSON = "{\"key\":\"signature.a077cdcc5bfcf275fe447ae2c609c1c361331b4e90cb85909582e0d824cbc5b3\",\"hash\":\"a077cdcc5bfcf275fe447ae2c609c1c361331b4e90cb85909582e0d824cbc5b3\",\"pageId\":123,\"title\":\"title\",\"body\":\"body\",\"maxSignatures\":-1,\"visibilityLimit\":-1,\"signatures\":{\"signed1\":\"1970-01-01T01:00:09CET\"},\"missingSignatures\":[\"missing1\",\"missing2\"],\"notify\":[\"notify1\"]}";
1723

1824
@Test
1925
void deserialize() throws IOException, ClassNotFoundException {
20-
ObjectInputStream in = new ObjectInputStream(getClass().getResourceAsStream("/signature.ser"));
21-
Signature2 signature = (Signature2) in.readObject();
22-
in.close();
26+
String signatureKey = "signature.a077cdcc5bfcf275fe447ae2c609c1c361331b4e90cb85909582e0d824cbc5b3";
2327

28+
Signature2 signature;
29+
try(ObjectInputStream in = new ObjectInputStream(getClass().getResourceAsStream("/signature.ser"))) {
30+
31+
HashSet<String> keys = new HashSet<>();
32+
keys.add(signatureKey);
33+
BandanaManager mgr = mock(BandanaManager.class);
34+
when(mgr.getValue(any(), any())).thenReturn(in.readObject());
35+
when(mgr.getKeys(any())).thenReturn(keys);
36+
37+
signature = Signature2.fromBandana(mgr, signatureKey);
38+
}
39+
40+
assertNotNull(signature);
2441
assertAll(
25-
() -> assertEquals("signature.a077cdcc5bfcf275fe447ae2c609c1c361331b4e90cb85909582e0d824cbc5b3", signature.getKey()),
42+
() -> assertEquals(signatureKey, signature.getKey()),
2643
() -> assertEquals("[missing1, missing2]", signature.getMissingSignatures().toString()),
2744
() -> assertEquals(1, signature.getSignatures().size()),
2845
() -> assertTrue(signature.getSignatures().containsKey("signed1")),
@@ -52,6 +69,17 @@ void serialize() throws IOException, ClassNotFoundException {
5269
// assert the serialization we just wrote can be deserialized
5370
ObjectInputStream in = new ObjectInputStream(Files.newInputStream(path));
5471
assertEquals(signature, in.readObject());
72+
}
73+
74+
@Test
75+
void deserializeHistoricalRecord() throws IOException, ClassNotFoundException {
76+
Signature signature = new Signature(123L, "body", "title");
77+
signature.getNotify().add("notify1");
78+
signature.getMissingSignatures().add("missing1");
79+
signature.getMissingSignatures().add("missing2");
80+
signature.getSignatures().put("signed1", new Date(9999));
81+
82+
ObjectInputStream in;
5583

5684
// assert the historically serialized class can still be deserialized
5785
in = new ObjectInputStream(this.getClass().getResourceAsStream("/signature.ser"));

src/test/java/com/baloise/confluence/digitalsignature/SignatureTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ void serializeAndDeserialize() {
6363
class BandanaWrapperTest {
6464
private final BandanaManager bandana = mock(DefaultBandanaManager.class);
6565
private final Signature2 signature = new Signature2(1, "test", "title");
66+
private final Signature signatureOld = new Signature(1, "test", "title");
6667

6768
@Test
6869
void toBandanaFromBandana_readAsWritten() {
@@ -80,7 +81,7 @@ void toBandanaFromBandana_readAsWritten() {
8081
assertEquals(signature.serialize(), objectCapator.getValue());
8182

8283
when(bandana.getValue(any(), any())).thenCallRealMethod();
83-
when(bandana.getValue(any(), eq(key), eq(true))).thenReturn(signature);
84+
when(bandana.getValue(any(), eq(key), eq(true))).thenReturn(signature.serialize());
8485
assertEquals(signature, Signature2.fromBandana(bandana, signature.getKey()));
8586
}
8687

@@ -91,7 +92,7 @@ void fromBandana_signature_signature() {
9192

9293
when(bandana.getKeys(any())).thenReturn(Collections.singletonList(key));
9394
when(bandana.getValue(any(), any())).thenCallRealMethod();
94-
when(bandana.getValue(any(), eq(key), eq(true))).thenReturn(signature);
95+
when(bandana.getValue(any(), eq(key), eq(true))).thenReturn(signatureOld);
9596

9697
assertEquals(signature, Signature2.fromBandana(bandana, signature.getKey()));
9798
}

0 commit comments

Comments
 (0)