Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit a1cec81c authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

- add Authoization service unit tests

parent d4a39cee
No related branches found
No related tags found
No related merge requests found
......@@ -67,7 +67,7 @@
<javaee-api.version>7.0</javaee-api.version>
<commons-lang3.version>3.4</commons-lang3.version>
<junit.version>4.12</junit.version>
<mockito.version>2.7.14</mockito.version>
<mockito.version>2.23.4</mockito.version>
<log4j.version>1.2.17</log4j.version>
<guava.version>18.0</guava.version>
<orika.version>1.4.6</orika.version>
......
package eu.europa.ec.edelivery.smp.auth;
import eu.europa.ec.edelivery.smp.data.model.DBUser;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Collections;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class SMPAuthorizationServiceTest {
DBUser mockUser = null;
SecurityContext mockSecurityContextSystemAdmin = null;
SecurityContext mockSecurityContextSGAdmin = null;
SMPAuthorizationService testInstance = new SMPAuthorizationService();
@Before
public void setup() {
DBUser user = new DBUser();
user.setId((long) 10);
mockSecurityContextSystemAdmin = new SecurityContext() {
SMPAuthenticationToken smpa = new SMPAuthenticationToken("smp_admin", "test123", Collections.singletonList(SMPAuthority.S_AUTHORITY_SYSTEM_ADMIN), user);
@Override
public Authentication getAuthentication() {
return smpa;
}
@Override
public void setAuthentication(Authentication authentication) {
}
};
mockSecurityContextSGAdmin = new SecurityContext() {
SMPAuthenticationToken smpa = new SMPAuthenticationToken("sg_admin", "test123", Collections.singletonList(SMPAuthority.S_AUTHORITY_SERVICE_GROUP), user);
@Override
public Authentication getAuthentication() {
return smpa;
}
@Override
public void setAuthentication(Authentication authentication) {
}
};
}
@Test
public void isSystemAdministratorNotLoggedIn() {
// given
SecurityContextHolder.setContext(mockSecurityContextSGAdmin);
// when then
boolean bVal = testInstance.isSystemAdministrator();
assertFalse(bVal);
}
@Test
public void isSystemAdministratorLoggedIn() {
// given
SecurityContextHolder.setContext(mockSecurityContextSystemAdmin);
// when then
boolean bVal = testInstance.isSystemAdministrator();
assertTrue(bVal);
}
@Test
public void isCurrentlyLoggedInNotLogedIn() {
// given
SecurityContextHolder.setContext(mockSecurityContextSystemAdmin);
boolean bVal = testInstance.isCurrentlyLoggedIn((long) 1);
assertFalse(bVal);
}
@Test
public void isCurrentlyLoggedIn() throws Exception {
// given
SecurityContextHolder.setContext(mockSecurityContextSystemAdmin);
// when then
boolean bVal = testInstance.isCurrentlyLoggedIn((long) 10);
assertTrue(bVal);
}
public void sanitize() {
}
}
\ No newline at end of file
package eu.europa.ec.edelivery.smp.ui;
import eu.europa.ec.edelivery.smp.config.PropertiesTestConfig;
import eu.europa.ec.edelivery.smp.config.SmpAppConfig;
import eu.europa.ec.edelivery.smp.config.SmpWebAppConfig;
import eu.europa.ec.edelivery.smp.config.SpringSecurityConfig;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockServletContext;
import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.jdbc.SqlConfig;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.RequestPostProcessor;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.WebApplicationContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;
import static org.junit.Assert.*;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
PropertiesTestConfig.class,
SmpAppConfig.class,
SmpWebAppConfig.class,
SpringSecurityConfig.class})
@WebAppConfiguration
@Sql("classpath:/cleanup-database.sql")
@Sql("classpath:/webapp_integration_test_data.sql")
@SqlConfig(encoding = "UTF-8")
public class AuthenticationResourceTest {
private static final String PATH="/ui/rest/security/authentication";
@Autowired
private WebApplicationContext webAppContext;
private MockMvc mvc;
private static final RequestPostProcessor ADMIN_CREDENTIALS = httpBasic("smp_admin", "test123");
@Before
public void setup() {
mvc = MockMvcBuilders.webAppContextSetup(webAppContext)
.apply(SecurityMockMvcConfigurers.springSecurity())
.build();
initServletContext();
}
private void initServletContext() {
MockServletContext sc = new MockServletContext("");
ServletContextListener listener = new ContextLoaderListener(webAppContext);
ServletContextEvent event = new ServletContextEvent(sc);
}
@Test
public void authenticateSuccessTest() throws Exception {
// given when
HttpSession session = mvc.perform(post(PATH)
.header("Content-Type","application/json")
.content("{\"username\":\"smp_admin\",\"password\":\"test123\"}"))
.andExpect(status().isOk()).andReturn()
.getRequest()
.getSession();
assertNotNull(session);
}
@Test
public void authenticateInvalidPasswordTest() throws Exception {
// given when then
mvc.perform(post(PATH)
.header("Content-Type","application/json")
.content("{\"username\":\"smp_admin\",\"password\":\"test1235\"}"))
.andExpect(status().isForbidden()).andReturn()
.getRequest()
.getSession();
}
@Test
public void authenticateInvalidUsernameTest() throws Exception {
// given when
mvc.perform(post(PATH)
.header("Content-Type","application/json")
.content("{\"username\":\"smp_admin1\",\"password\":\"test123\"}"))
.andExpect(status().isForbidden()).andReturn()
.getRequest()
.getSession();
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment