Skip to content

Commit f08f159

Browse files
authored
Merge pull request #39 from aertje/get_queue
Add get queue functionality and tests
2 parents 37639f6 + aefceb8 commit f08f159

File tree

2 files changed

+63
-2
lines changed

2 files changed

+63
-2
lines changed

emulator.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,12 @@ func (s *Server) ListQueues(ctx context.Context, in *tasks.ListQueuesRequest) (*
9393

9494
// GetQueue returns the requested queue
9595
func (s *Server) GetQueue(ctx context.Context, in *tasks.GetQueueRequest) (*tasks.Queue, error) {
96-
queue, _ := s.fetchQueue(in.GetName())
96+
queue, ok := s.fetchQueue(in.GetName())
9797

98-
// TODO: handle not found
98+
// Cloud responds with the same error message whether the queue was recently deleted or never existed
99+
if !ok || queue == nil {
100+
return nil, status.Errorf(codes.NotFound, "Queue does not exist. If you just created the queue, wait at least a minute for the queue to initialize.")
101+
}
99102

100103
return queue.state, nil
101104
}

emulator_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ import (
2323
"google.golang.org/api/option"
2424
taskspb "google.golang.org/genproto/googleapis/cloud/tasks/v2"
2525
"google.golang.org/grpc"
26+
"google.golang.org/grpc/codes"
2627
grpcCodes "google.golang.org/grpc/codes"
28+
"google.golang.org/grpc/status"
2729
grpcStatus "google.golang.org/grpc/status"
2830
)
2931

@@ -132,6 +134,62 @@ func TestCreateTaskRejectsInvalidName(t *testing.T) {
132134
}
133135
}
134136

137+
func TestGetQueueExists(t *testing.T) {
138+
serv, client := setUp(t)
139+
defer tearDown(t, serv)
140+
141+
createdQueue := createTestQueue(t, client)
142+
143+
getQueueRequest := taskspb.GetQueueRequest{
144+
Name: createdQueue.GetName(),
145+
}
146+
147+
gettedQueue, err := client.GetQueue(context.Background(), &getQueueRequest)
148+
149+
assert.NoError(t, err)
150+
assert.Equal(t, createdQueue.GetName(), gettedQueue.GetName())
151+
}
152+
153+
func TestGetQueueNeverExisted(t *testing.T) {
154+
serv, client := setUp(t)
155+
defer tearDown(t, serv)
156+
157+
getQueueRequest := taskspb.GetQueueRequest{
158+
Name: "hello_q",
159+
}
160+
161+
gettedQueue, err := client.GetQueue(context.Background(), &getQueueRequest)
162+
163+
assert.Nil(t, gettedQueue)
164+
st, _ := status.FromError(err)
165+
assert.Equal(t, codes.NotFound, st.Code())
166+
}
167+
168+
func TestGetQueuePreviouslyExisted(t *testing.T) {
169+
serv, client := setUp(t)
170+
defer tearDown(t, serv)
171+
172+
createdQueue := createTestQueue(t, client)
173+
174+
deleteQueueRequest := taskspb.DeleteQueueRequest{
175+
Name: createdQueue.GetName(),
176+
}
177+
178+
err := client.DeleteQueue(context.Background(), &deleteQueueRequest)
179+
180+
assert.NoError(t, err)
181+
182+
getQueueRequest := taskspb.GetQueueRequest{
183+
Name: createdQueue.GetName(),
184+
}
185+
186+
gettedQueue, err := client.GetQueue(context.Background(), &getQueueRequest)
187+
188+
assert.Nil(t, gettedQueue)
189+
st, _ := status.FromError(err)
190+
assert.Equal(t, codes.NotFound, st.Code())
191+
}
192+
135193
func TestSuccessTaskExecution(t *testing.T) {
136194
serv, client := setUp(t)
137195
defer tearDown(t, serv)

0 commit comments

Comments
 (0)