| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package token |
| |
| import ( |
| "sync" |
| ) |
| |
| var _ TokenHelper = (*TestingTokenHelper)(nil) |
| |
| // TestingTokenHelper implements token.TokenHelper which runs entirely |
| // in-memory. This should not be used outside of testing. |
| type TestingTokenHelper struct { |
| lock sync.RWMutex |
| token string |
| } |
| |
| func NewTestingTokenHelper() *TestingTokenHelper { |
| return &TestingTokenHelper{} |
| } |
| |
| func (t *TestingTokenHelper) Erase() error { |
| t.lock.Lock() |
| defer t.lock.Unlock() |
| t.token = "" |
| return nil |
| } |
| |
| func (t *TestingTokenHelper) Get() (string, error) { |
| t.lock.RLock() |
| defer t.lock.RUnlock() |
| return t.token, nil |
| } |
| |
| func (t *TestingTokenHelper) Path() string { |
| return "" |
| } |
| |
| func (t *TestingTokenHelper) Store(token string) error { |
| t.lock.Lock() |
| defer t.lock.Unlock() |
| t.token = token |
| return nil |
| } |