From a654eb942aa9b65000f566878d370751f30585a0 Mon Sep 17 00:00:00 2001 From: Hector Date: Tue, 20 Jun 2023 22:31:16 +0100 Subject: [PATCH] add tests for empty auth --- auth/empty.go | 14 ++++++++++++++ auth/empty_test.go | 36 ++++++++++++++++++++++++++++++++++++ auth/provider.go | 25 ------------------------- 3 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 auth/empty.go create mode 100644 auth/empty_test.go diff --git a/auth/empty.go b/auth/empty.go new file mode 100644 index 0000000..01e6775 --- /dev/null +++ b/auth/empty.go @@ -0,0 +1,14 @@ +package auth + +import "net/http" + +func NewEmptyAuthProvider() AuthProvider { + return &emptyAuthProvider{} +} + +type emptyAuthProvider struct { +} + +func (p *emptyAuthProvider) IsAllowed(request *http.Request) bool { + return true +} diff --git a/auth/empty_test.go b/auth/empty_test.go new file mode 100644 index 0000000..048de9d --- /dev/null +++ b/auth/empty_test.go @@ -0,0 +1,36 @@ +package auth + +import ( + "net/http" + "net/http/httptest" + "testing" +) + +func Test_GIVEN_EmptyAuth_WHEN_CallingIsAllowedWithoutAuth_THEN_TrueReturned(t *testing.T) { + // assemble + request := httptest.NewRequest(http.MethodGet, "http://example.com", nil) + provider := NewEmptyAuthProvider() + + // act + response := provider.IsAllowed(request) + + // assert + if !response { + t.Errorf("expected request to be allowed, but failed") + } +} + +func Test_GIVEN_EmptyAuth_WHEN_CallingIsAllowedWithAuth_THEN_TrueReturned(t *testing.T) { + // assemble + request := httptest.NewRequest(http.MethodGet, "http://example.com", nil) + request.SetBasicAuth("user", "pass") + provider := NewEmptyAuthProvider() + + // act + response := provider.IsAllowed(request) + + // assert + if !response { + t.Errorf("expected request to be allowed, but failed") + } +} diff --git a/auth/provider.go b/auth/provider.go index 4d8167e..a259ea0 100644 --- a/auth/provider.go +++ b/auth/provider.go @@ -7,28 +7,3 @@ import ( type AuthProvider interface { IsAllowed(*http.Request) bool } - -func NewEmptyAuthProvider() AuthProvider { - return &emptyAuthProvider{} -} - -type emptyAuthProvider struct { -} - -func (p *emptyAuthProvider) IsAllowed(request *http.Request) bool { - return true -} - -type compositeAuthProvider struct { - providers []AuthProvider -} - -func (p *compositeAuthProvider) IsAllowed(request *http.Request) bool { - for i := 0; i < len(p.providers); i++ { - provider := p.providers[i] - if provider.IsAllowed(request) { - return true - } - } - return false -}