This is an automated email from the ASF dual-hosted git repository.
wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push:
new 65366582 BIGTOP-4374: Add ut cases for holder classes in server module
(#181)
65366582 is described below
commit 65366582376bd59251659cc655e4d3466f5b80ce
Author: xianrenzw <[email protected]>
AuthorDate: Sat Feb 22 16:17:27 2025 +0800
BIGTOP-4374: Add ut cases for holder classes in server module (#181)
---
.../server/holder/SessionUserHolderTest.java | 79 ++++++++++++++++++++
.../server/holder/SpringContextHolderTest.java | 83 ++++++++++++++++++++++
2 files changed, 162 insertions(+)
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 00000000..59f3f004
--- /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 00000000..d0913856
--- /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<String, CommandValidator> commandValidatorMap = new HashMap<>();
+ commandValidatorMap.put("commandValidator1", commandValidatorMock);
+
when(applicationContext.getBeansOfType(CommandValidator.class)).thenReturn(commandValidatorMap);
+
+ Map<String, CommandValidator> result =
springContextHolder.getCommandValidators();
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ assertEquals(commandValidatorMock, result.get("commandValidator1"));
+ }
+
+ @Test
+ public void testGetJobFactories() {
+ JobFactory jobFactoryMock = mock(JobFactory.class);
+ Map<String, JobFactory> jobFactoryMap = new HashMap<>();
+ jobFactoryMap.put("jobFactory1", jobFactoryMock);
+
when(applicationContext.getBeansOfType(JobFactory.class)).thenReturn(jobFactoryMap);
+
+ Map<String, JobFactory> result = springContextHolder.getJobFactories();
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ assertEquals(jobFactoryMock, result.get("jobFactory1"));
+ }
+}