<artifactId>openecomp-facade-core</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.openecomp.sdc.common.session;
public interface SessionContext {
- User getUser();
+ User getUser();
- String getTenant();
+ String getTenant();
}
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.openecomp.sdc.common.session;
public interface SessionContextProvider {
- void create(String user, String tenant);
+ void create(String user, String tenant);
- SessionContext get();
+ SessionContext get();
- void close();
+ void close();
}
import org.openecomp.core.factory.api.AbstractFactory;
public abstract class SessionContextProviderFactory
- extends AbstractComponentFactory<SessionContextProvider> {
+ extends AbstractComponentFactory<SessionContextProvider> {
- public static SessionContextProviderFactory getInstance() {
- return AbstractFactory.getInstance(SessionContextProviderFactory.class);
- }
+ public static SessionContextProviderFactory getInstance() {
+ return AbstractFactory.getInstance(SessionContextProviderFactory.class);
+ }
}
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.openecomp.sdc.common.session;
-public class User {
- private final String userId;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
- public User(String userId) {
- this.userId = userId;
- }
+@Getter
+@AllArgsConstructor
+public class User {
- public String getUserId() {
- return userId;
- }
+ private final String userId;
}
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
package org.openecomp.sdc.common.session.impl;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.session.SessionContext;
public class AsdcSessionContextProvider implements SessionContextProvider {
- private static final ThreadLocal<String> threadUserId = new ThreadLocal<>();
- private static final ThreadLocal<String> threadTenant = new ThreadLocal<>();
-
- @Override
- public void create(String userId, String tenant) {
- threadUserId.set(userId);
- threadTenant.set(tenant);
- }
+ private static final ThreadLocal<String> threadUserId = new ThreadLocal<>();
+ private static final ThreadLocal<String> threadTenant = new ThreadLocal<>();
- @Override
- public SessionContext get() {
- if (threadUserId.get() == null) {
- throw new CoreException(new ErrorCode.ErrorCodeBuilder().withMessage("UserId was not set "
- + "for this thread").build());
- }
-
- if (threadTenant.get() == null) {
- throw new CoreException(new ErrorCode.ErrorCodeBuilder().withMessage("Tenant was not set "
- + "for this thread").build());
+ @Override
+ public void create(String userId, String tenant) {
+ threadUserId.set(userId);
+ threadTenant.set(tenant);
}
- return new AsdcSessionContext(new User(threadUserId.get()), threadTenant.get());
- }
-
- @Override
- public void close() {
- threadUserId.remove();
- threadTenant.remove();
- }
-
- private static class AsdcSessionContext implements SessionContext {
+ @Override
+ public SessionContext get() {
+ if (threadUserId.get() == null) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withMessage("UserId was not set "
+ + "for this thread").build());
+ }
- private final User user;
- private final String tenant;
+ if (threadTenant.get() == null) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withMessage("Tenant was not set "
+ + "for this thread").build());
+ }
- private AsdcSessionContext(User user, String tenant) {
- this.user = user;
- this.tenant = tenant;
+ return new AsdcSessionContext(new User(threadUserId.get()), threadTenant.get());
}
@Override
- public User getUser() {
- return user;
+ public void close() {
+ threadUserId.remove();
+ threadTenant.remove();
}
- @Override
- public String getTenant() {
- return tenant;
+ @Getter
+ @AllArgsConstructor
+ private static class AsdcSessionContext implements SessionContext {
+
+ private final User user;
+ private final String tenant;
}
- }
}
-/*-
+/*
* ============LICENSE_START=======================================================
* SDC
* ================================================================================
import org.openecomp.sdc.common.session.SessionContextProviderFactory;
public class SessionContextProviderFactoryImpl extends SessionContextProviderFactory {
- private static final SessionContextProvider INSTANCE = new AsdcSessionContextProvider();
- @Override
- public SessionContextProvider createInterface() {
- return INSTANCE;
- }
+ private static final SessionContextProvider INSTANCE = new AsdcSessionContextProvider();
+
+ @Override
+ public SessionContextProvider createInterface() {
+ return INSTANCE;
+ }
}
--- /dev/null
+/*
+ *
+ * Copyright © 2017-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.common.session.impl;
+
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.common.errors.CoreException;
+import org.openecomp.sdc.common.session.SessionContext;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+public class AsdcSessionContextProviderTest {
+
+ private static final String USER_ID = "cs0008";
+
+ @InjectMocks
+ private AsdcSessionContextProvider asdcSessionContextProvider;
+
+ @BeforeMethod
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test(expectedExceptions = CoreException.class)
+ public void testGetUserIdNull() {
+ asdcSessionContextProvider.create(null, null);
+ asdcSessionContextProvider.get();
+ }
+
+ @Test(expectedExceptions = CoreException.class)
+ public void testGetTenantNull() {
+ asdcSessionContextProvider.create(USER_ID, null);
+ asdcSessionContextProvider.get();
+ }
+
+ @Test
+ public void testGet() {
+ asdcSessionContextProvider.create(USER_ID, "tenant");
+ SessionContext sessionContext = asdcSessionContextProvider.get();
+
+ Assert.assertNotNull(sessionContext);
+ Assert.assertSame(USER_ID, sessionContext.getUser().getUserId());
+ Assert.assertSame("tenant", sessionContext.getTenant());
+ }
+}
--- /dev/null
+/*
+ *
+ * Copyright © 2017-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * /
+ *
+ */
+
+package org.openecomp.sdc.common.session.impl;
+
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.common.session.SessionContextProvider;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+public class SessionContextProviderFactoryImplTest {
+
+ @InjectMocks
+ private SessionContextProviderFactoryImpl sessionContextProviderFactoryImpl;
+
+ @BeforeMethod
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testCreateInterface() {
+ SessionContextProvider sessionContextProvider = sessionContextProviderFactoryImpl.createInterface();
+
+ Assert.assertTrue(sessionContextProvider instanceof AsdcSessionContextProvider);
+ }
+}