Merge branch 'release/0.9-rc1'
[Sone.git] / src / test / java / net / pterodactylus / sone / data / impl / AbstractSoneBuilderTest.java
1 package net.pterodactylus.sone.data.impl;
2
3 import static org.mockito.Mockito.mock;
4
5 import net.pterodactylus.sone.data.Sone;
6 import net.pterodactylus.sone.freenet.wot.Identity;
7 import net.pterodactylus.sone.freenet.wot.OwnIdentity;
8
9 import org.junit.Test;
10
11 /**
12  * Unit test for {@link AbstractSoneBuilder}.
13  *
14  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
15  */
16 public class AbstractSoneBuilderTest {
17
18         private final AbstractSoneBuilder soneBuilder = new AbstractSoneBuilder() {
19                 @Override
20                 public Sone build() throws IllegalStateException {
21                         validate();
22                         return null;
23                 }
24         };
25
26         @Test
27         public void localSoneIsValidated() {
28                 Identity ownIdentity = mock(OwnIdentity.class);
29                 soneBuilder.local().from(ownIdentity).build();
30         }
31
32         @Test(expected = IllegalStateException.class)
33         public void localSoneIsNotValidatedIfIdentityIsNotAnOwnIdentity() {
34                 Identity identity = mock(Identity.class);
35                 soneBuilder.local().from(identity).build();
36         }
37
38         @Test(expected = IllegalStateException.class)
39         public void localSoneIsNotValidatedIfIdentityIsNull() {
40                 soneBuilder.local().build();
41         }
42
43         @Test
44         public void removeSoneIsValidate() {
45                 Identity identity = mock(Identity.class);
46                 soneBuilder.from(identity).build();
47         }
48
49         @Test(expected = IllegalStateException.class)
50         public void remoteSoneIsNotValidatedIfIdentityIsNull() {
51                 soneBuilder.build();
52         }
53
54 }