Skip to content
Snippets Groups Projects
RootControllerTest.java 2.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • OZGCloud's avatar
    OZGCloud committed
    package de.ozgcloud.admin;
    
    import static org.mockito.Mockito.*;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
    
    import org.junit.jupiter.api.BeforeEach;
    import org.junit.jupiter.api.DisplayName;
    import org.junit.jupiter.api.Nested;
    import org.junit.jupiter.api.Test;
    import org.junit.jupiter.api.extension.ExtendWith;
    import org.mockito.InjectMocks;
    import org.mockito.Mock;
    import org.mockito.Spy;
    import org.mockito.junit.jupiter.MockitoExtension;
    
    import org.springframework.boot.info.BuildProperties;
    
    OZGCloud's avatar
    OZGCloud committed
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.ResultActions;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    
    import lombok.SneakyThrows;
    
    @ExtendWith(MockitoExtension.class)
    class RootControllerTest {
    
    	@Spy
    	@InjectMocks
    	private RootController rootController;
    
    	@Mock
    
    	private BuildProperties buildProperties;
    
    OZGCloud's avatar
    OZGCloud committed
    
    	private MockMvc mockMvc;
    
    	@BeforeEach
    	void mock() {
    		mockMvc = MockMvcBuilders.standaloneSetup(rootController).build();
    	}
    
    	@DisplayName("Root")
    	@Nested
    	class TestInfo {
    
    		@Test
    		@SneakyThrows
    		void shouldHaveJavaVersion() {
    
    			System.setProperty("java.version", RootTestFactory.JAVA_VERSION);
    
    OZGCloud's avatar
    OZGCloud committed
    
    			ResultActions result = doRequest();
    
    
    			result.andExpect(jsonPath("$.javaVersion").value(RootTestFactory.JAVA_VERSION));
    
    OZGCloud's avatar
    OZGCloud committed
    		}
    
    		@Test
    		@SneakyThrows
    		void shouldHaveVersion() {
    
    			when(buildProperties.getVersion()).thenReturn(RootTestFactory.BUILD_VERSION);
    
    OZGCloud's avatar
    OZGCloud committed
    
    			ResultActions result = doRequest();
    
    
    			result.andExpect(jsonPath("$.buildVersion").value(RootTestFactory.BUILD_VERSION));
    
    OZGCloud's avatar
    OZGCloud committed
    		}
    
    		@Test
    		@SneakyThrows
    		void shouldHaveBuildTime() {
    
    			when(buildProperties.getTime()).thenReturn(RootTestFactory.BUILD_TIME);
    
    OZGCloud's avatar
    OZGCloud committed
    
    			ResultActions result = doRequest();
    
    
    			result.andExpect(jsonPath("$.buildTime").value(RootTestFactory.BUILD_TIME.getEpochSecond()));
    
    OZGCloud's avatar
    OZGCloud committed
    		}
    
    		@Test
    		@SneakyThrows
    		void shouldHaveBuildNumber() {
    
    			when(buildProperties.get("number")).thenReturn(RootTestFactory.BUILD_NUMBER);
    
    OZGCloud's avatar
    OZGCloud committed
    
    			ResultActions result = doRequest();
    
    
    			result.andExpect(jsonPath("$.buildNumber").value(RootTestFactory.BUILD_NUMBER));
    
    OZGCloud's avatar
    OZGCloud committed
    		}
    
    		@SneakyThrows
    		private ResultActions doRequest() {
    			return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk());
    		}
    
    	}
    
    }