@@ -2,11 +2,21 @@ package main
22
33import (
44 "bytes"
5+ "context"
6+
57 "net/http"
68 "testing"
79 "time"
810
11+ "github.com/go-redis/redismock/v9"
912 "github.com/stretchr/testify/assert"
13+
14+ "gofr.dev/pkg/gofr"
15+ "gofr.dev/pkg/gofr/container"
16+ "gofr.dev/pkg/gofr/datasource/redis"
17+ gofrHTTP "gofr.dev/pkg/gofr/http"
18+ "gofr.dev/pkg/gofr/logging"
19+ "gofr.dev/pkg/gofr/testutil"
1020)
1121
1222func TestHTTPServerUsingRedis (t * testing.T ) {
@@ -41,3 +51,50 @@ func TestHTTPServerUsingRedis(t *testing.T) {
4151 assert .Equal (t , tc .statusCode , resp .StatusCode , "TEST[%d], Failed.\n %s" , i , tc .desc )
4252 }
4353}
54+
55+ func TestRedisSetHandler (t * testing.T ) {
56+ a := gofr .New ()
57+ logger := logging .NewLogger (logging .DEBUG )
58+ redisClient , mock := redismock .NewClientMock ()
59+
60+ rc := redis .NewClient (testutil .NewMockConfig (map [string ]string {"REDIS_HOST" : "localhost" , "REDIS_PORT" : "2001" }), logger , a .Metrics ())
61+ rc .Client = redisClient
62+
63+ mock .ExpectSet ("key" , "value" , 5 * time .Minute ).SetErr (testutil.CustomError {ErrorMessage : "redis get error" })
64+
65+ req , _ := http .NewRequestWithContext (context .Background (), http .MethodGet , "http://localhost:5000/handle" , bytes .NewBuffer ([]byte (`{"key":"value"}` )))
66+
67+ gofrReq := gofrHTTP .NewRequest (req )
68+
69+ ctx := & gofr.Context {Context : context .Background (),
70+ Request : gofrReq , Container : & container.Container {Logger : logger , Redis : rc }}
71+
72+ resp , err := RedisSetHandler (ctx )
73+
74+ assert .Nil (t , resp )
75+ assert .NotNil (t , err )
76+ }
77+
78+ func TestRedisPipelineHandler (t * testing.T ) {
79+ a := gofr .New ()
80+ logger := logging .NewLogger (logging .DEBUG )
81+ redisClient , mock := redismock .NewClientMock ()
82+
83+ rc := redis .NewClient (testutil .NewMockConfig (map [string ]string {"REDIS_HOST" : "localhost" , "REDIS_PORT" : "2001" }), logger , a .Metrics ())
84+ rc .Client = redisClient
85+
86+ mock .ExpectSet ("testKey1" , "testValue1" , time .Minute * 5 ).SetErr (testutil.CustomError {ErrorMessage : "redis get error" })
87+ mock .ClearExpect ()
88+
89+ req , _ := http .NewRequestWithContext (context .Background (), http .MethodGet , "http://localhost:5000/handle" , bytes .NewBuffer ([]byte (`{"key":"value"}` )))
90+
91+ gofrReq := gofrHTTP .NewRequest (req )
92+
93+ ctx := & gofr.Context {Context : context .Background (),
94+ Request : gofrReq , Container : & container.Container {Logger : logger , Redis : rc }}
95+
96+ resp , err := RedisPipelineHandler (ctx )
97+
98+ assert .Nil (t , resp )
99+ assert .NotNil (t , err )
100+ }
0 commit comments