From f3b79ff2141fcf7391c0932130adf9c5d24d0694 Mon Sep 17 00:00:00 2001 From: tschiman Date: Wed, 7 Dec 2016 21:27:57 -0700 Subject: [PATCH] BAEL-89 Removing spring from integration test and converting to unit test. --- .../spring/session/SessionControllerTest.java | 64 ++++++------------- 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/spring-session/src/test/java/com/baeldung/spring/session/SessionControllerTest.java b/spring-session/src/test/java/com/baeldung/spring/session/SessionControllerTest.java index 42d12112a2..f08fec3a1f 100644 --- a/spring-session/src/test/java/com/baeldung/spring/session/SessionControllerTest.java +++ b/spring-session/src/test/java/com/baeldung/spring/session/SessionControllerTest.java @@ -1,86 +1,64 @@ package com.baeldung.spring.session; -import org.apache.tomcat.util.codec.binary.Base64; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.http.*; -import org.springframework.test.context.junit4.SpringRunner; +import redis.clients.jedis.Jedis; import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class SessionControllerTest { - @Autowired - private TestRestTemplate restTemplate; - @Autowired - private JedisConnectionFactory jedisConnectionFactory; - - private RedisConnection connection; + private Jedis jedis; + private TestRestTemplate testRestTemplate; + private TestRestTemplate testRestTemplateWithAuth; + private String testUrl = "http://localhost:8080/"; @Before public void clearRedisData() { - connection = jedisConnectionFactory.getConnection(); - connection.flushAll(); + testRestTemplate = new TestRestTemplate(); + testRestTemplateWithAuth = new TestRestTemplate("admin", "password", null); + + jedis = new Jedis("localhost", 6379); + jedis.flushAll(); } @Test public void testRedisIsEmpty() { - Set result = connection.keys("*".getBytes()); + Set result = jedis.keys("*"); assertEquals(0, result.size()); } @Test public void testUnauthenticatedCantAccess() { - ResponseEntity result = restTemplate.getForEntity("/", String.class); + ResponseEntity result = testRestTemplate.getForEntity(testUrl, String.class); assertEquals(HttpStatus.UNAUTHORIZED, result.getStatusCode()); } @Test public void testRedisControlsSession() { - ResponseEntity result = restTemplate.exchange("/", HttpMethod.GET, makeAuthRequest(), String.class); + ResponseEntity result = testRestTemplateWithAuth.getForEntity(testUrl, String.class); assertEquals("hello admin", result.getBody()); //login worked - Set redisResult = connection.keys("*".getBytes()); + Set redisResult = jedis.keys("*"); assertTrue(redisResult.size() > 0); //redis is populated with session data String sessionCookie = result.getHeaders().get("Set-Cookie").get(0).split(";")[0]; - result = restTemplate.exchange("/", HttpMethod.GET, makeRequestWithCookie(sessionCookie), String.class); + HttpHeaders headers = new HttpHeaders(); + headers.add("Cookie", sessionCookie); + HttpEntity httpEntity = new HttpEntity<>(headers); + + result = testRestTemplate.exchange(testUrl, HttpMethod.GET, httpEntity, String.class); assertEquals("hello admin", result.getBody()); //access with session works worked - connection.flushAll(); //clear all keys in redis + jedis.flushAll(); //clear all keys in redis - result = restTemplate.exchange("/", HttpMethod.GET, makeRequestWithCookie(sessionCookie), String.class); + result = testRestTemplate.exchange(testUrl, HttpMethod.GET, httpEntity, String.class); assertEquals(HttpStatus.UNAUTHORIZED, result.getStatusCode());//access denied after sessions are removed in redis } - - private HttpEntity makeRequestWithCookie(String sessionCookie) { - HttpHeaders headers = new HttpHeaders(); - headers.add("Cookie", sessionCookie); - - return new HttpEntity<>(headers); - } - - private HttpEntity makeAuthRequest() { - String plainCreds = "admin:password"; - byte[] plainCredsBytes = plainCreds.getBytes(); - byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes); - String base64Creds = new String(base64CredsBytes); - - HttpHeaders headers = new HttpHeaders(); - headers.add("Authorization", "Basic " + base64Creds); - - return new HttpEntity<>(headers); - } } \ No newline at end of file