11package redis .clients .jedis .tests .commands ;
22
3+ import static org .junit .Assert .assertArrayEquals ;
34import static org .junit .Assert .assertEquals ;
45import static org .junit .Assert .assertNotNull ;
56import static org .junit .Assert .assertTrue ;
67
78import java .util .List ;
8-
9+ import org .junit .After ;
10+ import org .junit .Before ;
911import org .junit .Test ;
1012
13+ import redis .clients .jedis .Protocol ;
14+ import redis .clients .jedis .util .SafeEncoder ;
1115import redis .clients .jedis .util .Slowlog ;
1216
1317public class SlowlogCommandsTest extends JedisCommandTestBase {
1418
19+ private static final String SLOWLOG_TIME_PARAM = "slowlog-log-slower-than" ;
20+ private static final String ZERO = "0" ;
21+ private String slowlogTimeValue ;
22+
23+ @ Before
24+ @ Override
25+ public void setUp () throws Exception {
26+ super .setUp ();
27+ slowlogTimeValue = jedis .configGet (SLOWLOG_TIME_PARAM ).get (1 );
28+ }
29+
30+ @ After
31+ @ Override
32+ public void tearDown () throws Exception {
33+ jedis .configSet (SLOWLOG_TIME_PARAM , slowlogTimeValue );
34+ super .tearDown ();
35+ }
36+
1537 @ Test
1638 public void slowlog () {
17- final String slowlogTimeParam = "slowlog-log-slower-than" ;
18- final String slowlogTimeValue = jedis .configGet (slowlogTimeParam ).get (1 );
19-
20- jedis .configSet ("slowlog-log-slower-than" , "0" );
39+ jedis .configSet (SLOWLOG_TIME_PARAM , ZERO );
2140 jedis .set ("foo" , "bar" );
2241 jedis .set ("foo2" , "bar2" );
2342
@@ -30,27 +49,59 @@ public void slowlog() {
3049 assertTrue (log .getExecutionTime () >= 0 );
3150 assertNotNull (log .getArgs ());
3251
33- List <byte [] > breducedLog = jedis .slowlogGetBinary (1 );
52+ List <Object > breducedLog = jedis .slowlogGetBinary (1 );
3453 assertEquals (1 , breducedLog .size ());
3554
3655 List <Slowlog > log1 = jedis .slowlogGet ();
37- List <byte [] > blog1 = jedis .slowlogGetBinary ();
56+ List <Object > blog1 = jedis .slowlogGetBinary ();
3857
3958 assertNotNull (log1 );
4059 assertNotNull (blog1 );
60+ }
4161
42- long len1 = jedis .slowlogLen ();
43-
62+ @ Test
63+ public void slowlogObjectDetails () {
64+ final String clientName = "slowlog-object-client" ;
65+ jedis .clientSetname (clientName );
4466 jedis .slowlogReset ();
67+ jedis .configSet (SLOWLOG_TIME_PARAM , ZERO );
4568
46- List <Slowlog > log2 = jedis .slowlogGet ();
47- List <byte []> blog2 = jedis .slowlogGetBinary ();
48- long len2 = jedis .slowlogLen ();
49-
50- assertTrue (len1 > len2 );
51- assertTrue (log1 .size () > log2 .size ());
52- assertTrue (blog1 .size () > blog2 .size ());
69+ List <Slowlog > logs = jedis .slowlogGet (); // Get only 'CONFIG SET'
70+ assertEquals (1 , logs .size ());
71+ Slowlog log = logs .get (0 );
72+ assertTrue (log .getId () > 0 );
73+ assertTrue (log .getTimeStamp () > 0 );
74+ assertTrue (log .getExecutionTime () > 0 );
75+ assertEquals (4 , log .getArgs ().size ());
76+ assertEquals (SafeEncoder .encode (Protocol .Command .CONFIG .getRaw ()), log .getArgs ().get (0 ));
77+ assertEquals (SafeEncoder .encode (Protocol .Keyword .SET .getRaw ()), log .getArgs ().get (1 ));
78+ assertEquals (SLOWLOG_TIME_PARAM , log .getArgs ().get (2 ));
79+ assertEquals (ZERO , log .getArgs ().get (3 ));
80+ assertEquals ("127.0.0.1" , log .getClientIpPort ().getHost ());
81+ assertTrue (log .getClientIpPort ().getPort () > 0 );
82+ assertEquals (clientName , log .getClientName ());
83+ }
5384
54- jedis .configSet (slowlogTimeParam , slowlogTimeValue );
85+ @ Test
86+ public void slowlogBinaryDetails () {
87+ final byte [] clientName = SafeEncoder .encode ("slowlog-binary-client" );
88+ jedis .clientSetname (clientName );
89+ jedis .slowlogReset ();
90+ jedis .configSet (SafeEncoder .encode (SLOWLOG_TIME_PARAM ), SafeEncoder .encode (ZERO ));
91+
92+ List <Object > logs = jedis .slowlogGetBinary (); // Get only 'CONFIG SET'
93+ assertEquals (1 , logs .size ());
94+ List <Object > log = (List <Object >) logs .get (0 );
95+ assertTrue ((Long ) log .get (0 ) > 0 );
96+ assertTrue ((Long ) log .get (1 ) > 0 );
97+ assertTrue ((Long ) log .get (2 ) > 0 );
98+ List <Object > args = (List <Object >) log .get (3 );
99+ assertEquals (4 , args .size ());
100+ assertArrayEquals (Protocol .Command .CONFIG .getRaw (), (byte []) args .get (0 ));
101+ assertArrayEquals (Protocol .Keyword .SET .getRaw (), (byte []) args .get (1 ));
102+ assertArrayEquals (SafeEncoder .encode (SLOWLOG_TIME_PARAM ), (byte []) args .get (2 ));
103+ assertArrayEquals (Protocol .toByteArray (0 ), (byte []) args .get (3 ));
104+ assertTrue (SafeEncoder .encode ((byte []) log .get (4 )).startsWith ("127.0.0.1:" ));
105+ assertArrayEquals (clientName , (byte []) log .get (5 ));
55106 }
56107}
0 commit comments