1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.hal.testsuite.test.configuration.iiop;
17
18 import org.jboss.arquillian.core.api.annotation.Inject;
19 import org.jboss.arquillian.graphene.page.Page;
20 import org.jboss.hal.resources.Ids;
21 import org.jboss.hal.testsuite.Console;
22 import org.jboss.hal.testsuite.CrudOperations;
23 import org.jboss.hal.testsuite.Random;
24 import org.jboss.hal.testsuite.container.WildFlyContainer;
25 import org.jboss.hal.testsuite.fragment.FormFragment;
26 import org.jboss.hal.testsuite.page.configuration.IIOPPage;
27 import org.jboss.hal.testsuite.test.Manatoko;
28 import org.junit.jupiter.api.BeforeAll;
29 import org.junit.jupiter.api.BeforeEach;
30 import org.junit.jupiter.api.Test;
31 import org.testcontainers.junit.jupiter.Container;
32 import org.testcontainers.junit.jupiter.Testcontainers;
33 import org.wildfly.extras.creaper.core.online.OnlineManagementClient;
34 import org.wildfly.extras.creaper.core.online.operations.Operations;
35
36 import static org.jboss.hal.dmr.ModelDescriptionConstants.GROUP;
37 import static org.jboss.hal.dmr.ModelDescriptionConstants.IDENTITY;
38 import static org.jboss.hal.dmr.ModelDescriptionConstants.IIOP_OPENJDK;
39 import static org.jboss.hal.dmr.ModelDescriptionConstants.NAMING;
40 import static org.jboss.hal.dmr.ModelDescriptionConstants.NONE;
41 import static org.jboss.hal.dmr.ModelDescriptionConstants.PROPERTIES;
42 import static org.jboss.hal.dmr.ModelDescriptionConstants.SECURITY;
43 import static org.jboss.hal.dmr.ModelDescriptionConstants.SECURITY_DOMAIN;
44 import static org.jboss.hal.dmr.ModelDescriptionConstants.SOCKET_BINDING;
45 import static org.jboss.hal.dmr.ModelDescriptionConstants.TRANSACTIONS;
46 import static org.jboss.hal.testsuite.container.WildFlyConfiguration.FULL;
47 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.AUTH_METHOD;
48 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.CALLER_PROPAGATION;
49 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.DEFAULT_ROOT_CONTEXT;
50 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.EXPORT_CORBALOC;
51 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.HIGH_WATER_MARK;
52 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.IIOP;
53 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.PERSISTENT_SERVER_ID;
54 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.ROOT_CONTEXT;
55 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.SPEC;
56 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.SUBSYSTEM_ADDRESS;
57 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.SUPPORTED;
58 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.SUPPORT_SSL;
59 import static org.jboss.hal.testsuite.fixtures.IIOPFixtures.USERNAME_PASSWORD;
60 import static org.jboss.hal.testsuite.page.configuration.IIOPPage.IIOP_PREFIX;
61 import static org.junit.jupiter.api.Assertions.assertEquals;
62 import static org.junit.jupiter.api.Assertions.assertTrue;
63
64 @Manatoko
65 @Testcontainers
66 class IIOPTest {
67
68 @Container static WildFlyContainer wildFly = WildFlyContainer.standalone(FULL);
69 private static Operations operations;
70
71 @BeforeAll
72 static void setupModel() throws Exception {
73 OnlineManagementClient client = wildFly.managementClient();
74 operations = new Operations(client);
75 operations.undefineAttribute(SUBSYSTEM_ADDRESS, PERSISTENT_SERVER_ID);
76 operations.undefineAttribute(SUBSYSTEM_ADDRESS, EXPORT_CORBALOC);
77 operations.writeAttribute(SUBSYSTEM_ADDRESS, SECURITY, IDENTITY);
78 operations.writeAttribute(SUBSYSTEM_ADDRESS, TRANSACTIONS, SPEC);
79 operations.undefineAttribute(SUBSYSTEM_ADDRESS, AUTH_METHOD);
80 operations.undefineAttribute(SUBSYSTEM_ADDRESS, CALLER_PROPAGATION);
81 operations.undefineAttribute(SUBSYSTEM_ADDRESS, HIGH_WATER_MARK);
82 operations.undefineAttribute(SUBSYSTEM_ADDRESS, ROOT_CONTEXT);
83 operations.undefineAttribute(SUBSYSTEM_ADDRESS, PROPERTIES);
84 operations.undefineAttribute(SUBSYSTEM_ADDRESS, SUPPORT_SSL);
85 operations.undefineAttribute(SUBSYSTEM_ADDRESS, SECURITY_DOMAIN);
86 }
87
88 @Inject Console console;
89 @Inject CrudOperations crud;
90 @Page IIOPPage page;
91 FormFragment form;
92
93 @BeforeEach
94 void prepare() {
95 page.navigate();
96 }
97
98 @Test
99 void updateOrbPersistentId() throws Exception {
100 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "orb", Ids.TAB));
101 form = page.getOrbForm();
102 crud.update(SUBSYSTEM_ADDRESS, form, PERSISTENT_SERVER_ID, "23");
103 }
104
105 @Test
106 void showOrbSocketBindingSensitive() {
107 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "orb", Ids.TAB));
108 form = page.getOrbForm();
109 form.showSensitive(SOCKET_BINDING);
110
111 String val = form.value(SOCKET_BINDING);
112 assertEquals(val, IIOP);
113 }
114
115 @Test
116 void updateNaming() throws Exception {
117 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, NAMING, Ids.TAB));
118 form = page.getNamingForm();
119 crud.update(SUBSYSTEM_ADDRESS, form, EXPORT_CORBALOC, false);
120 }
121
122 @Test
123 void resetNaming() throws Exception {
124 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, NAMING, Ids.TAB));
125 form = page.getNamingForm();
126 crud.reset(SUBSYSTEM_ADDRESS, form, resourceVerifier -> {
127 resourceVerifier.verifyAttribute(EXPORT_CORBALOC, true);
128 resourceVerifier.verifyAttribute(ROOT_CONTEXT, DEFAULT_ROOT_CONTEXT);
129 });
130 }
131
132 @Test
133 void resetInitializers() throws Exception {
134 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "initializers", Ids.TAB));
135 form = page.getInitializersForm();
136 crud.reset(SUBSYSTEM_ADDRESS, form, resourceVerifier -> {
137 resourceVerifier.verifyAttribute(SECURITY, NONE);
138 resourceVerifier.verifyAttribute(TRANSACTIONS, NONE);
139 });
140 }
141
142 @Test
143 void updateAsContext() throws Exception {
144 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "as-context", Ids.TAB));
145 form = page.getAsContextForm();
146 crud.update(SUBSYSTEM_ADDRESS, form,
147 f -> f.select(AUTH_METHOD, NONE),
148 resourceVerifier -> resourceVerifier.verifyAttribute(AUTH_METHOD, NONE));
149 }
150
151 @Test
152 void resetAsContext() throws Exception {
153 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "as-context", Ids.TAB));
154 form = page.getAsContextForm();
155 crud.reset(SUBSYSTEM_ADDRESS, form,
156 resourceVerifier -> resourceVerifier.verifyAttribute(AUTH_METHOD, USERNAME_PASSWORD));
157 }
158
159 @Test
160 void updateSasContext() throws Exception {
161 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "sas-context", Ids.TAB));
162 form = page.getSasContextForm();
163 crud.update(SUBSYSTEM_ADDRESS, form,
164 f -> f.select(CALLER_PROPAGATION, SUPPORTED),
165 resourceVerifier -> resourceVerifier.verifyAttribute(CALLER_PROPAGATION, SUPPORTED));
166 }
167
168 @Test
169 void updateSecurity() throws Exception {
170 boolean clientRequiresSSL = operations.readAttribute(SUBSYSTEM_ADDRESS, "client-requires-ssl").booleanValue();
171 boolean serverRequiresSSL = operations.readAttribute(SUBSYSTEM_ADDRESS, "client-requires-ssl").booleanValue();
172 boolean supportSSL = operations.readAttribute(SUBSYSTEM_ADDRESS, "support-ssl").booleanValue();
173 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, SECURITY, Ids.TAB));
174 form = page.getSecurityForm();
175 crud.update(SUBSYSTEM_ADDRESS, form,
176 formFragment -> {
177 formFragment.flip("client-requires-ssl", !clientRequiresSSL);
178 formFragment.flip("server-requires-ssl", !serverRequiresSSL);
179 formFragment.flip("support-ssl", !supportSSL);
180 },
181 resourceVerifier -> {
182 resourceVerifier.verifyAttribute("client-requires-ssl", !clientRequiresSSL);
183 resourceVerifier.verifyAttribute("server-requires-ssl", !serverRequiresSSL);
184 resourceVerifier.verifyAttribute("support-ssl", !supportSSL);
185 });
186 }
187
188 @Test
189 void updateTcp() throws Exception {
190 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "tcp", Ids.TAB));
191 form = page.getTcpForm();
192 crud.update(SUBSYSTEM_ADDRESS, form, HIGH_WATER_MARK, 11);
193 }
194
195 @Test
196 void updateProperties() throws Exception {
197 page.getTabs().select(Ids.build(IIOP_OPENJDK, PROPERTIES, Ids.TAB));
198 form = page.getPropertiesForm();
199 crud.update(SUBSYSTEM_ADDRESS, form, PROPERTIES, Random.properties());
200 }
201
202 @Test
203 void resetProperties() throws Exception {
204 page.getTabs().select(Ids.build(IIOP_OPENJDK, PROPERTIES, Ids.TAB));
205 form = page.getPropertiesForm();
206 crud.reset(SUBSYSTEM_ADDRESS, form,
207 resourceVerifier -> resourceVerifier.verifyAttributeIsUndefined(PROPERTIES));
208 }
209
210 @Test
211 void cancelEditTcp() {
212 page.getTabs().select(Ids.build(IIOP_PREFIX, GROUP, "tcp", Ids.TAB));
213 form = page.getTcpForm();
214 form.edit();
215 form.cancel();
216 assertTrue(console.verifyNoError());
217 }
218
219 @Test
220 void cancelEditProperties() {
221 page.getTabs().select(Ids.build(IIOP_OPENJDK, PROPERTIES, Ids.TAB));
222 form = page.getPropertiesForm();
223 form.edit();
224 form.cancel();
225 assertTrue(console.verifyNoError());
226 }
227 }