mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-04 04:28:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) HashiCorp, Inc.
 | 
						|
// SPDX-License-Identifier: MPL-2.0
 | 
						|
 | 
						|
package logical
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"reflect"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	log "github.com/hashicorp/go-hclog"
 | 
						|
	"github.com/hashicorp/vault/sdk/helper/logging"
 | 
						|
)
 | 
						|
 | 
						|
// TestRequest is a helper to create a purely in-memory Request struct.
 | 
						|
func TestRequest(t testing.TB, op Operation, path string) *Request {
 | 
						|
	return &Request{
 | 
						|
		Operation:  op,
 | 
						|
		Path:       path,
 | 
						|
		Data:       make(map[string]interface{}),
 | 
						|
		Storage:    new(InmemStorage),
 | 
						|
		Connection: &Connection{},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// TestStorage is a helper that can be used from unit tests to verify
 | 
						|
// the behavior of a Storage impl.
 | 
						|
func TestStorage(t testing.TB, s Storage) {
 | 
						|
	keys, err := s.List(context.Background(), "")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatalf("list error: %s", err)
 | 
						|
	}
 | 
						|
	if len(keys) > 0 {
 | 
						|
		t.Fatalf("should have no keys to start: %#v", keys)
 | 
						|
	}
 | 
						|
 | 
						|
	entry := &StorageEntry{Key: "foo", Value: []byte("bar")}
 | 
						|
	if err := s.Put(context.Background(), entry); err != nil {
 | 
						|
		t.Fatalf("put error: %s", err)
 | 
						|
	}
 | 
						|
 | 
						|
	actual, err := s.Get(context.Background(), "foo")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatalf("get error: %s", err)
 | 
						|
	}
 | 
						|
	if !reflect.DeepEqual(actual, entry) {
 | 
						|
		t.Fatalf("wrong value. Expected: %#v\nGot: %#v", entry, actual)
 | 
						|
	}
 | 
						|
 | 
						|
	keys, err = s.List(context.Background(), "")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatalf("list error: %s", err)
 | 
						|
	}
 | 
						|
	if !reflect.DeepEqual(keys, []string{"foo"}) {
 | 
						|
		t.Fatalf("bad keys: %#v", keys)
 | 
						|
	}
 | 
						|
 | 
						|
	if err := s.Delete(context.Background(), "foo"); err != nil {
 | 
						|
		t.Fatalf("put error: %s", err)
 | 
						|
	}
 | 
						|
 | 
						|
	keys, err = s.List(context.Background(), "")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatalf("list error: %s", err)
 | 
						|
	}
 | 
						|
	if len(keys) > 0 {
 | 
						|
		t.Fatalf("should have no keys to start: %#v", keys)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestSystemView() *StaticSystemView {
 | 
						|
	defaultLeaseTTLVal := time.Hour * 24
 | 
						|
	maxLeaseTTLVal := time.Hour * 24 * 2
 | 
						|
	return &StaticSystemView{
 | 
						|
		DefaultLeaseTTLVal: defaultLeaseTTLVal,
 | 
						|
		MaxLeaseTTLVal:     maxLeaseTTLVal,
 | 
						|
		VersionString:      "testVersionString",
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestBackendConfig() *BackendConfig {
 | 
						|
	bc := &BackendConfig{
 | 
						|
		Logger: logging.NewVaultLogger(log.Trace),
 | 
						|
		System: TestSystemView(),
 | 
						|
		Config: make(map[string]string),
 | 
						|
	}
 | 
						|
 | 
						|
	return bc
 | 
						|
}
 |