Add unit test for HTTP client response functions
This commit is contained in:
parent
aecda64030
commit
c5cd38de83
2 changed files with 61 additions and 1 deletions
|
@ -28,7 +28,11 @@ func (r *Response) IsModified(etag, lastModified string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if r.ETag != "" && r.LastModified != "" && (r.ETag == etag || r.LastModified == lastModified) {
|
if r.ETag != "" && r.ETag == etag {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.LastModified != "" && r.LastModified == lastModified {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
56
reader/http/response_test.go
Normal file
56
reader/http/response_test.go
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
||||||
|
// Use of this source code is governed by the Apache 2.0
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package http
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestHasServerFailureWith200Status(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 200}
|
||||||
|
if r.HasServerFailure() {
|
||||||
|
t.Error("200 is not a failure")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestHasServerFailureWith404Status(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 404}
|
||||||
|
if !r.HasServerFailure() {
|
||||||
|
t.Error("404 is a failure")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestHasServerFailureWith500Status(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 500}
|
||||||
|
if !r.HasServerFailure() {
|
||||||
|
t.Error("500 is a failure")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIsModifiedWith304Status(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 304}
|
||||||
|
if r.IsModified("etag", "lastModified") {
|
||||||
|
t.Error("The resource should not be considered modified")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIsModifiedWithIdenticalEtag(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 200, ETag: "etag"}
|
||||||
|
if r.IsModified("etag", "lastModified") {
|
||||||
|
t.Error("The resource should not be considered modified")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIsModifiedWithIdenticalLastModified(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 200, LastModified: "lastModified"}
|
||||||
|
if r.IsModified("etag", "lastModified") {
|
||||||
|
t.Error("The resource should not be considered modified")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIsModifiedWithDifferentHeaders(t *testing.T) {
|
||||||
|
r := &Response{StatusCode: 200, ETag: "some etag", LastModified: "some date"}
|
||||||
|
if !r.IsModified("etag", "lastModified") {
|
||||||
|
t.Error("The resource should be considered modified")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue