1
+ package edu .harvard .dbmi .avillach .dataupload .hpds ;
2
+
3
+ import edu .harvard .dbmi .avillach .dataupload .hpds .hpdsartifactsdonotchange .Query ;
4
+ import edu .harvard .dbmi .avillach .dataupload .hpds .hpdsartifactsdonotchange .ResultType ;
5
+ import org .junit .jupiter .api .Assertions ;
6
+ import org .junit .jupiter .api .Test ;
7
+ import org .junit .jupiter .api .io .TempDir ;
8
+ import org .mockito .ArgumentMatcher ;
9
+ import org .mockito .Mockito ;
10
+ import org .springframework .boot .test .context .SpringBootTest ;
11
+ import org .springframework .boot .test .mock .mockito .MockBean ;
12
+
13
+ import java .io .IOException ;
14
+ import java .nio .file .Files ;
15
+ import java .nio .file .Path ;
16
+ import java .util .UUID ;
17
+
18
+ import static org .junit .jupiter .api .Assertions .*;
19
+
20
+ @ SpringBootTest
21
+ class HPDSConnectionVerifierTest {
22
+
23
+ @ MockBean
24
+ private HPDSClient client ;
25
+
26
+ @ MockBean
27
+ private UUIDGenerator generator ;
28
+
29
+ private final Query query = new Query ();
30
+ {
31
+ query .setPicSureId ("9f1fc383-611b-4c6a-af37-a33c07feea5e" );
32
+ query .setId ("9f1fc383-611b-4c6a-af37-a33c07feea5e" );
33
+ query .setExpectedResultType (ResultType .COUNT );
34
+ }
35
+
36
+ @ Test
37
+ void shouldFailWhenHPDS400s (@ TempDir Path sharingRoot ) {
38
+ Mockito .when (client .writeTestData (query ))
39
+ .thenReturn (false );
40
+ Mockito .when (generator .generate ())
41
+ .thenReturn (UUID .fromString ("9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
42
+ HPDSConnectionVerifier subject = new HPDSConnectionVerifier (client , sharingRoot , generator );
43
+
44
+ boolean result = subject .verifyConnection ();
45
+
46
+ Assertions .assertFalse (result );
47
+ Mockito .verify (client , Mockito .times (1 ))
48
+ .writeTestData (query );
49
+ }
50
+
51
+ @ Test
52
+ void shouldFailWhenHPDSDoesNotWrite (@ TempDir Path sharingRoot ) {
53
+ Mockito .when (client .writeTestData (query ))
54
+ .thenReturn (true );
55
+ Mockito .when (generator .generate ())
56
+ .thenReturn (UUID .fromString ("9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
57
+ HPDSConnectionVerifier subject = new HPDSConnectionVerifier (client , sharingRoot , generator );
58
+
59
+ boolean result = subject .verifyConnection ();
60
+
61
+ Assertions .assertFalse (result );
62
+ Mockito .verify (client , Mockito .times (1 ))
63
+ .writeTestData (query );
64
+ }
65
+
66
+ @ Test
67
+ void shouldFailWhenHPDSMakesADirectory (@ TempDir Path sharingRoot ) throws IOException {
68
+ Files .createDirectory (Path .of (sharingRoot .toString (), "9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
69
+ Files .createDirectory (Path .of (sharingRoot .toString (), "9f1fc383-611b-4c6a-af37-a33c07feea5e" , "test_data.txt" ));
70
+
71
+ Mockito .when (client .writeTestData (query ))
72
+ .thenReturn (true );
73
+ Mockito .when (generator .generate ())
74
+ .thenReturn (UUID .fromString ("9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
75
+ HPDSConnectionVerifier subject = new HPDSConnectionVerifier (client , sharingRoot , generator );
76
+
77
+ Assertions .assertFalse (subject .verifyConnection ());
78
+ Mockito .verify (client , Mockito .times (1 ))
79
+ .writeTestData (query );
80
+ }
81
+
82
+ @ Test
83
+ void shouldPass (@ TempDir Path sharingRoot ) throws IOException {
84
+ Files .createDirectory (Path .of (sharingRoot .toString (), "9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
85
+ Files .writeString (
86
+ Path .of (sharingRoot .toString (), "9f1fc383-611b-4c6a-af37-a33c07feea5e" , "test_data.txt" ),
87
+ "Howdy :)"
88
+ );
89
+
90
+ Mockito .when (client .writeTestData (query ))
91
+ .thenReturn (true );
92
+ Mockito .when (generator .generate ())
93
+ .thenReturn (UUID .fromString ("9f1fc383-611b-4c6a-af37-a33c07feea5e" ));
94
+ HPDSConnectionVerifier subject = new HPDSConnectionVerifier (client , sharingRoot , generator );
95
+
96
+ Assertions .assertTrue (subject .verifyConnection ());
97
+ Mockito .verify (client , Mockito .times (1 ))
98
+ .writeTestData (query );
99
+ }
100
+ }
0 commit comments