diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SessionUserHolderTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SessionUserHolderTest.java new file mode 100644 index 000000000..59f3f0048 --- /dev/null +++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SessionUserHolderTest.java @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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.apache.bigtop.manager.server.holder; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +public class SessionUserHolderTest { + + @BeforeEach + public void setUp() { + SessionUserHolder.clear(); + } + + @AfterEach + public void tearDown() { + SessionUserHolder.clear(); + } + + @Test + public void testSetAndGetUserId() { + Long testUserId = 12345L; + SessionUserHolder.setUserId(testUserId); + + Long retrievedUserId = SessionUserHolder.getUserId(); + assertEquals(testUserId, retrievedUserId); + } + + @Test + public void testClear() { + Long testUserId = 12345L; + SessionUserHolder.setUserId(testUserId); + + SessionUserHolder.clear(); + + Long retrievedUserId = SessionUserHolder.getUserId(); + assertNull(retrievedUserId); + } + + @Test + public void testUserIdIsThreadLocal() throws InterruptedException { + Long mainThreadIdUserId = 12345L; + SessionUserHolder.setUserId(mainThreadIdUserId); + + Thread testThread = new Thread(() -> { + Long testThreadIdUserId = 67890L; + SessionUserHolder.setUserId(testThreadIdUserId); + + Long retrievedUserId = SessionUserHolder.getUserId(); + assertEquals(testThreadIdUserId, retrievedUserId); + }); + + testThread.start(); + testThread.join(); + + Long retrievedUserId = SessionUserHolder.getUserId(); + assertEquals(mainThreadIdUserId, retrievedUserId); + } +} diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SpringContextHolderTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SpringContextHolderTest.java new file mode 100644 index 000000000..d0913856d --- /dev/null +++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/holder/SpringContextHolderTest.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * https://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.apache.bigtop.manager.server.holder; + +import org.apache.bigtop.manager.server.command.factory.JobFactory; +import org.apache.bigtop.manager.server.command.validator.CommandValidator; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; + +import java.util.HashMap; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class SpringContextHolderTest { + + private ApplicationContext applicationContext; + private SpringContextHolder springContextHolder; + + @BeforeEach + public void setUp() { + applicationContext = mock(ApplicationContext.class); + springContextHolder = new SpringContextHolder(); + springContextHolder.setApplicationContext(applicationContext); + } + + @Test + public void testGetBean() { + CommandValidator commandValidatorMock = mock(CommandValidator.class); + when(applicationContext.getBean(CommandValidator.class)).thenReturn(commandValidatorMock); + + CommandValidator result = springContextHolder.getBean(CommandValidator.class); + assertNotNull(result); + assertEquals(commandValidatorMock, result); + } + + @Test + public void testGetCommandValidators() { + CommandValidator commandValidatorMock = mock(CommandValidator.class); + Map commandValidatorMap = new HashMap<>(); + commandValidatorMap.put("commandValidator1", commandValidatorMock); + when(applicationContext.getBeansOfType(CommandValidator.class)).thenReturn(commandValidatorMap); + + Map result = springContextHolder.getCommandValidators(); + assertNotNull(result); + assertEquals(1, result.size()); + assertEquals(commandValidatorMock, result.get("commandValidator1")); + } + + @Test + public void testGetJobFactories() { + JobFactory jobFactoryMock = mock(JobFactory.class); + Map jobFactoryMap = new HashMap<>(); + jobFactoryMap.put("jobFactory1", jobFactoryMock); + when(applicationContext.getBeansOfType(JobFactory.class)).thenReturn(jobFactoryMap); + + Map result = springContextHolder.getJobFactories(); + assertNotNull(result); + assertEquals(1, result.size()); + assertEquals(jobFactoryMock, result.get("jobFactory1")); + } +}