3
3
import com .amazonaws .AmazonClientException ;
4
4
import com .amazonaws .services .s3 .model .CannedAccessControlList ;
5
5
import com .amazonaws .services .s3 .model .SSEAwsKeyManagementParams ;
6
- import junitparams .JUnitParamsRunner ;
7
- import org .hamcrest .Matchers ;
8
- import org .junit .Before ;
9
- import org .junit .Rule ;
10
- import org .junit .Test ;
11
- import org .junit .rules .ExpectedException ;
12
- import org .junit .runner .RunWith ;
6
+ import org .junit .jupiter .api .BeforeEach ;
7
+ import org .junit .jupiter .api .Test ;
13
8
import org .mockito .ArgumentCaptor ;
14
9
15
- import static org .junit .Assert .*;
16
- import static org .mockito .Mockito .*;
10
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
11
+ import static org .junit .jupiter .api .Assertions .assertNotEquals ;
12
+ import static org .junit .jupiter .api .Assertions .assertThrows ;
13
+ import static org .mockito .Mockito .any ;
14
+ import static org .mockito .Mockito .doThrow ;
15
+ import static org .mockito .Mockito .eq ;
16
+ import static org .mockito .Mockito .mock ;
17
+ import static org .mockito .Mockito .times ;
18
+ import static org .mockito .Mockito .verify ;
19
+ import static org .mockito .Mockito .verifyNoInteractions ;
20
+ import static org .mockito .Mockito .when ;
17
21
18
- @ RunWith (JUnitParamsRunner .class )
19
22
public class S3BackedPayloadStoreTest {
20
23
private static final String S3_BUCKET_NAME = "test-bucket-name" ;
21
24
private static final String S3_SERVER_SIDE_ENCRYPTION_KMS_KEY_ID = "test-customer-managed-kms-key-id" ;
@@ -26,10 +29,8 @@ public class S3BackedPayloadStoreTest {
26
29
private PayloadStore payloadStore ;
27
30
private S3Dao s3Dao ;
28
31
29
- @ Rule
30
- public final ExpectedException exception = ExpectedException .none ();
31
32
32
- @ Before
33
+ @ BeforeEach
33
34
public void setup () {
34
35
s3Dao = mock (S3Dao .class );
35
36
payloadStore = new S3BackedPayloadStore (s3Dao , S3_BUCKET_NAME );
@@ -43,8 +44,7 @@ public void testStoreOriginalPayloadOnSuccess() {
43
44
ArgumentCaptor <SSEAwsKeyManagementParams > sseArgsCaptor = ArgumentCaptor .forClass (SSEAwsKeyManagementParams .class );
44
45
ArgumentCaptor <CannedAccessControlList > cannedArgsCaptor = ArgumentCaptor .forClass (CannedAccessControlList .class );
45
46
46
- verify (s3Dao , times (1 )).storeTextInS3 (eq (S3_BUCKET_NAME ), keyCaptor .capture (),
47
- eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
47
+ verify (s3Dao , times (1 )).storeTextInS3 (eq (S3_BUCKET_NAME ), keyCaptor .capture (), eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
48
48
49
49
PayloadS3Pointer expectedPayloadPointer = new PayloadS3Pointer (S3_BUCKET_NAME , keyCaptor .getValue ());
50
50
assertEquals (expectedPayloadPointer .toJson (), actualPayloadPointer );
@@ -54,8 +54,7 @@ public void testStoreOriginalPayloadOnSuccess() {
54
54
public void testStoreOriginalPayloadWithS3KeyOnSuccess () {
55
55
String actualPayloadPointer = payloadStore .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH , ANY_S3_KEY );
56
56
57
- verify (s3Dao , times (1 )).storeTextInS3 (eq (S3_BUCKET_NAME ), eq (ANY_S3_KEY ),
58
- eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
57
+ verify (s3Dao , times (1 )).storeTextInS3 (eq (S3_BUCKET_NAME ), eq (ANY_S3_KEY ), eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
59
58
60
59
PayloadS3Pointer expectedPayloadPointer = new PayloadS3Pointer (S3_BUCKET_NAME , ANY_S3_KEY );
61
60
assertEquals (expectedPayloadPointer .toJson (), actualPayloadPointer );
@@ -64,17 +63,14 @@ public void testStoreOriginalPayloadWithS3KeyOnSuccess() {
64
63
@ Test
65
64
public void testStoreOriginalPayloadDoesAlwaysCreateNewObjects () {
66
65
//Store any payload
67
- String anyActualPayloadPointer = payloadStore
68
- .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH );
66
+ String anyActualPayloadPointer = payloadStore .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH );
69
67
70
68
//Store any other payload and validate that the pointers are different
71
- String anyOtherActualPayloadPointer = payloadStore
72
- .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH );
69
+ String anyOtherActualPayloadPointer = payloadStore .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH );
73
70
74
71
ArgumentCaptor <String > anyOtherKeyCaptor = ArgumentCaptor .forClass (String .class );
75
72
76
- verify (s3Dao , times (2 )).storeTextInS3 (eq (S3_BUCKET_NAME ), anyOtherKeyCaptor .capture (),
77
- eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
73
+ verify (s3Dao , times (2 )).storeTextInS3 (eq (S3_BUCKET_NAME ), anyOtherKeyCaptor .capture (), eq (ANY_PAYLOAD ), eq (ANY_PAYLOAD_LENGTH ));
78
74
79
75
String anyS3Key = anyOtherKeyCaptor .getAllValues ().get (0 );
80
76
String anyOtherS3Key = anyOtherKeyCaptor .getAllValues ().get (1 );
@@ -85,24 +81,16 @@ public void testStoreOriginalPayloadDoesAlwaysCreateNewObjects() {
85
81
PayloadS3Pointer anyOtherExpectedPayloadPointer = new PayloadS3Pointer (S3_BUCKET_NAME , anyOtherS3Key );
86
82
assertEquals (anyOtherExpectedPayloadPointer .toJson (), anyOtherActualPayloadPointer );
87
83
88
- assertThat (anyS3Key , Matchers . not ( anyOtherS3Key ) );
89
- assertThat (anyActualPayloadPointer , Matchers . not ( anyOtherActualPayloadPointer ) );
84
+ assertNotEquals (anyS3Key , anyOtherS3Key );
85
+ assertNotEquals (anyActualPayloadPointer , anyOtherActualPayloadPointer );
90
86
}
91
87
92
88
@ Test
93
89
public void testStoreOriginalPayloadOnS3Failure () {
94
- doThrow (new AmazonClientException ("S3 Exception" ))
95
- .when (s3Dao )
96
- .storeTextInS3 (
97
- any (String .class ),
98
- any (String .class ),
99
- any (String .class ),
100
- any (Long .class ));
101
-
102
- exception .expect (AmazonClientException .class );
103
- exception .expectMessage ("S3 Exception" );
90
+ doThrow (new AmazonClientException ("S3 Exception" )).when (s3Dao ).storeTextInS3 (any (String .class ), any (String .class ), any (String .class ), any (Long .class ));
91
+
104
92
//Any S3 Dao exception is thrown back as-is to clients
105
- payloadStore .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH );
93
+ assertThrows ( AmazonClientException . class , () -> payloadStore .storeOriginalPayload (ANY_PAYLOAD , ANY_PAYLOAD_LENGTH ), "S3 Exception" );
106
94
}
107
95
108
96
@ Test
@@ -122,21 +110,17 @@ public void testGetOriginalPayloadOnSuccess() {
122
110
123
111
@ Test
124
112
public void testGetOriginalPayloadIncorrectPointer () {
125
- exception .expect (AmazonClientException .class );
126
- exception .expectMessage (INCORRECT_POINTER_EXCEPTION_MSG );
127
113
//Any S3 Dao exception is thrown back as-is to clients
128
- payloadStore .getOriginalPayload ("IncorrectPointer" );
114
+ assertThrows ( AmazonClientException . class , () -> payloadStore .getOriginalPayload ("IncorrectPointer" ), INCORRECT_POINTER_EXCEPTION_MSG );
129
115
verifyNoInteractions (s3Dao );
130
116
}
131
117
132
118
@ Test
133
119
public void testGetOriginalPayloadOnS3Failure () {
134
120
when (s3Dao .getTextFromS3 (any (String .class ), any (String .class ))).thenThrow (new AmazonClientException ("S3 Exception" ));
135
- exception .expect (AmazonClientException .class );
136
- exception .expectMessage ("S3 Exception" );
137
121
//Any S3 Dao exception is thrown back as-is to clients
138
122
PayloadS3Pointer anyPointer = new PayloadS3Pointer (S3_BUCKET_NAME , ANY_S3_KEY );
139
- payloadStore .getOriginalPayload (anyPointer .toJson ());
123
+ assertThrows ( AmazonClientException . class , () -> payloadStore .getOriginalPayload (anyPointer .toJson ()), "S3 Exception" );
140
124
}
141
125
142
126
@ Test
@@ -154,9 +138,7 @@ public void testDeleteOriginalPayloadOnSuccess() {
154
138
155
139
@ Test
156
140
public void testDeleteOriginalPayloadIncorrectPointer () {
157
- exception .expect (AmazonClientException .class );
158
- exception .expectMessage (INCORRECT_POINTER_EXCEPTION_MSG );
159
- payloadStore .deleteOriginalPayload ("IncorrectPointer" );
141
+ assertThrows (AmazonClientException .class , () -> payloadStore .deleteOriginalPayload ("IncorrectPointer" ), INCORRECT_POINTER_EXCEPTION_MSG );
160
142
verifyNoInteractions (s3Dao );
161
143
}
162
144
}
0 commit comments