Skip to content

Commit 478b572

Browse files
committed
Implement Challenge redislabs-training#1
1 parent 3b4a18a commit 478b572

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/main/java/com/redislabs/university/RU102J/dao/SiteDaoRedisImpl.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
import redis.clients.jedis.Jedis;
55
import redis.clients.jedis.JedisPool;
66

7-
import java.util.*;
7+
import java.util.Collections;
8+
import java.util.HashSet;
9+
import java.util.Map;
10+
import java.util.Set;
811

912
public class SiteDaoRedisImpl implements SiteDao {
1013
private final JedisPool jedisPool;
@@ -41,8 +44,18 @@ public Site findById(long id) {
4144
// Challenge #1
4245
@Override
4346
public Set<Site> findAll() {
44-
// START Challenge #1
45-
return Collections.emptySet();
46-
// END Challenge #1
47+
try(Jedis jedis = jedisPool.getResource()) {
48+
String key = RedisSchema.getSiteIDsKey();
49+
Set<String> siteHashKeys = jedis.smembers(key);
50+
51+
Set<Site> sites = new HashSet<>();
52+
for (String siteHashKey : siteHashKeys) {
53+
Map<String, String> fields = jedis.hgetAll(siteHashKey);
54+
if(fields != null && !fields.isEmpty()) {
55+
sites.add(new Site(fields));
56+
}
57+
}
58+
return sites;
59+
}
4760
}
4861
}

src/test/java/com/redislabs/university/RU102J/dao/SiteDaoRedisImplTest.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,18 @@
22

33
import com.redislabs.university.RU102J.HostPort;
44
import com.redislabs.university.RU102J.TestKeyManager;
5-
import com.redislabs.university.RU102J.api.MeterReading;
65
import com.redislabs.university.RU102J.api.Site;
76
import org.junit.*;
87
import redis.clients.jedis.Jedis;
98
import redis.clients.jedis.JedisPool;
109
import redis.clients.jedis.JedisPoolConfig;
1110

12-
import java.time.ZoneOffset;
13-
import java.time.ZonedDateTime;
1411
import java.util.HashSet;
1512
import java.util.Map;
1613
import java.util.Set;
1714

1815
import static org.hamcrest.MatcherAssert.assertThat;
19-
import static org.hamcrest.Matchers.is;
20-
import static org.hamcrest.Matchers.nullValue;
21-
import static org.hamcrest.Matchers.empty;
16+
import static org.hamcrest.Matchers.*;
2217
import static org.junit.Assert.assertEquals;
2318

2419
public class SiteDaoRedisImplTest {
@@ -97,7 +92,6 @@ public void findByIdWithMissingSite() {
9792
* Challenge #1 Part 1. Use this test case to
9893
* implement the challenge in Chapter 1.
9994
*/
100-
@Ignore
10195
@Test
10296
public void findAllWithMultipleSites() {
10397
SiteDaoRedisImpl dao = new SiteDaoRedisImpl(jedisPool);
@@ -113,7 +107,6 @@ public void findAllWithMultipleSites() {
113107
* Challenge #1 Part 2. Use this test case to
114108
* implement the challenge in Chapter 1.
115109
*/
116-
@Ignore
117110
@Test
118111
public void findAllWithEmptySites() {
119112
SiteDaoRedisImpl dao = new SiteDaoRedisImpl(jedisPool);

0 commit comments

Comments
 (0)