diff options
9 files changed, 237 insertions, 62 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/pom.xml b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/pom.xml index 3112c5d407..8dc6613769 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/pom.xml +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/pom.xml @@ -24,6 +24,20 @@ <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> diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContext.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContext.java index a1b410c90c..c9e6379793 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContext.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContext.java @@ -1,8 +1,24 @@ +/* + * 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(); } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProvider.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProvider.java index 5c4da8d855..9b74cb0060 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProvider.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProvider.java @@ -1,10 +1,26 @@ +/* + * 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(); } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProviderFactory.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProviderFactory.java index cfa6a346c9..d08c6dd94a 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProviderFactory.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/SessionContextProviderFactory.java @@ -24,9 +24,9 @@ import org.openecomp.core.factory.api.AbstractComponentFactory; 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); + } } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/User.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/User.java index 5319a0bf56..bbda545f80 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/User.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/User.java @@ -1,13 +1,27 @@ +/* + * 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; } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProvider.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProvider.java index 7c4b0ecc0c..1d23410b89 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProvider.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProvider.java @@ -1,5 +1,24 @@ +/* + * 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; @@ -8,54 +27,41 @@ import org.openecomp.sdc.common.session.User; 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; } - } } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImpl.java index 635aa5b6ed..9367530bf3 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImpl.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/main/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImpl.java @@ -1,4 +1,4 @@ -/*- +/* * ============LICENSE_START======================================================= * SDC * ================================================================================ @@ -24,10 +24,11 @@ import org.openecomp.sdc.common.session.SessionContextProvider; 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; + } } diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProviderTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProviderTest.java new file mode 100644 index 0000000000..f0a9d2dcf7 --- /dev/null +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/AsdcSessionContextProviderTest.java @@ -0,0 +1,63 @@ +/* + * + * 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()); + } +} diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImplTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImplTest.java new file mode 100644 index 0000000000..eec7bd02ad --- /dev/null +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-session-lib/src/test/java/org/openecomp/sdc/common/session/impl/SessionContextProviderFactoryImplTest.java @@ -0,0 +1,45 @@ +/* + * + * 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); + } +} |