9
9
import org .springframework .beans .factory .annotation .Autowired ;
10
10
import org .springframework .boot .test .context .SpringBootTest ;
11
11
import org .springframework .test .context .junit4 .SpringRunner ;
12
+ import reactor .core .publisher .Flux ;
12
13
import reactor .core .publisher .Mono ;
13
14
import reactor .test .StepVerifier ;
14
15
19
20
public class BundleApiServiceImplTest {
20
21
@ Autowired
21
22
BundleApiServiceImpl bundleApiService ;
22
- // @MockBean
23
- // SessionUserServiceImpl sessionUserService;
24
23
25
24
@ Test
26
- public void createBundleTest () {
25
+ @ WithMockUser
26
+ public void createBundleTestAdminUser () {
27
27
//When org admin user creates bundle it succeed
28
- // when(sessionUserService.getVisitorId()).thenReturn(Mono.just("user01"));
29
- // when(sessionUserService.getVisitorOrgMemberCache()).thenReturn(Mono.just(new OrgMember("org01", "user01", MemberRole.ADMIN, "NORMAL", 0)));
30
28
Mono <BundleInfoView > bundleInfoViewMono = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
31
29
"org01" ,
32
30
"name1" ,
@@ -49,10 +47,11 @@ public void createBundleTest() {
49
47
assertNull (bundleInfoView .getFolderId ());
50
48
})
51
49
.verifyComplete ();
52
-
50
+ }
51
+ @ Test
52
+ @ WithMockUser (id ="user02" )
53
+ public void createBundleTestDevUser () {
53
54
//When org dev user creates bundle it succeed
54
- // when(sessionUserService.getVisitorId()).thenReturn(Mono.just("user02"));
55
- // when(sessionUserService.getVisitorOrgMemberCache()).thenReturn(Mono.just(new OrgMember("org01", "user02", MemberRole.MEMBER, "NORMAL", 0)));
56
55
Mono <BundleInfoView > bundleInfoViewMono1 = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
57
56
"org01" ,
58
57
"name2" ,
@@ -75,10 +74,11 @@ public void createBundleTest() {
75
74
assertNull (bundleInfoView .getFolderId ());
76
75
})
77
76
.verifyComplete ();
78
-
77
+ }
78
+ @ Test
79
+ @ WithMockUser (id ="user03" )
80
+ public void createBundleTestNonDevUser () {
79
81
//When non-dev create bundle throws error
80
- // when(sessionUserService.getVisitorId()).thenReturn(Mono.just("user01"));
81
- // when(sessionUserService.getVisitorOrgMemberCache()).thenReturn(Mono.just(new OrgMember("org01", "user01", MemberRole.MEMBER, "NORMAL", 0)));
82
82
Mono <BundleInfoView > bundleInfoViewMono2 = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
83
83
"org01" ,
84
84
"name3" ,
@@ -93,9 +93,8 @@ public void createBundleTest() {
93
93
}
94
94
95
95
@ Test
96
- public void moveAddAppTest () {
97
- // when(sessionUserService.getVisitorId()).thenReturn(Mono.just("user01"));
98
- // when(sessionUserService.getVisitorOrgMemberCache()).thenReturn(Mono.just(new OrgMember("org01", "user01", MemberRole.ADMIN, "NORMAL", 0)));
96
+ @ WithMockUser
97
+ public void moveAddAppTestAdmin () {
99
98
//Create bundles
100
99
Mono <BundleInfoView > bundleInfoViewMono = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
101
100
"org01" ,
@@ -122,13 +121,6 @@ public void moveAddAppTest() {
122
121
123
122
return bundleApiService .addApp ("app01" , bundleInfoView .getBundleId ())
124
123
.then (bundleApiService .moveApp ("app01" , bundleInfoView .getBundleId (), bundleInfoView2 .getBundleId ()))
125
- .then (Mono .fromRunnable (() -> {
126
- // Try a no-dev user to add app to bundle
127
- // when(sessionUserService.getVisitorId()).thenReturn(Mono.just("user01"));
128
- // when(sessionUserService.getVisitorOrgMemberCache()).thenReturn(Mono.just(new OrgMember("org01", "user01", MemberRole.MEMBER, "NORMAL", 0)));
129
- }))
130
- .then (bundleApiService .addApp ("app01" , bundleInfoView .getBundleId ()).onErrorResume (e -> Mono .empty ()))
131
- .then (bundleApiService .moveApp ("app01" , bundleInfoView .getBundleId (), bundleInfoView2 .getBundleId ()).onErrorResume (e -> Mono .empty ()))
132
124
//Get published bundle
133
125
.then (bundleApiService .getPublishedBundle (bundleInfoView2 .getBundleId (), BundleRequestType .PUBLIC_TO_ALL ))
134
126
.doOnNext (bundle -> {
@@ -143,6 +135,46 @@ public void moveAddAppTest() {
143
135
.verifyComplete ();
144
136
}
145
137
138
+ @ Test
139
+ @ WithMockUser (id ="user02" )
140
+ public void moveAddAppTestNonDev () {
141
+ //Create bundles
142
+ Mono <BundleInfoView > bundleInfoViewMono = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
143
+ "org01" ,
144
+ "name4" ,
145
+ "title" ,
146
+ "description" ,
147
+ "category" ,
148
+ "image" ,
149
+ null ));
150
+
151
+ Mono <BundleInfoView > bundleInfoViewMono2 = bundleApiService .create (new BundleEndpoints .CreateBundleRequest (
152
+ "org01" ,
153
+ "name5" ,
154
+ "title" ,
155
+ "description" ,
156
+ "category" ,
157
+ "image" ,
158
+ null ));
159
+
160
+ Flux <?> testFlux = Flux .zip (bundleInfoViewMono , bundleInfoViewMono2 )
161
+ .flatMap (tuple2 -> {
162
+ var bundleInfoView = tuple2 .getT1 ();
163
+ var bundleInfoView2 = tuple2 .getT2 ();
164
+
165
+ return Flux .concat (bundleApiService .addApp ("app01" , bundleInfoView .getBundleId ()),
166
+ bundleApiService .moveApp ("app01" , bundleInfoView .getBundleId (), bundleInfoView2 .getBundleId ()));
167
+ });
168
+
169
+ StepVerifier .create (testFlux )
170
+ .expectError ()
171
+ .verify ();
172
+
173
+ StepVerifier .create (testFlux )
174
+ .expectError ()
175
+ .verify ();
176
+ }
177
+
146
178
private Mono <BundleInfoView > createBundle (String name , String folderId ) {
147
179
BundleEndpoints .CreateBundleRequest createApplicationRequest =
148
180
new BundleEndpoints .CreateBundleRequest ("org01" , name , "title" , "desc" , "category" , "image" , folderId );
0 commit comments