Files
virtual-kubelet/providers/azure/aadMock.go
Robbie Zhang 2b85b0d1df Fill in Default Values for CPU/Memory (#130)
Update k8s client and the dependencies
ACI client change for Mocking
Add ACI Provider Mock Tests
Add the Windows development environment
Add UT for Default Resource Requests
Enable the make test in Docker file
Update the vendors
2018-04-16 10:31:16 -07:00

69 lines
1.3 KiB
Go

package azure
import (
"bytes"
"encoding/json"
"net/http"
"net/http/httptest"
"strconv"
"time"
"github.com/Azure/go-autorest/autorest/adal"
)
// AADMock implements a AAD mock server .
type AADMock struct {
server *httptest.Server
OnAcquireToken func(http.ResponseWriter,*http.Request)
}
// NewAADMock creates a new AAD server mocker.
func NewAADMock() *AADMock {
aadServer := new(AADMock)
aadServer.start()
return aadServer
}
// Start the AAD server mocker.
func (mock *AADMock)start() {
if mock.server != nil {
return
}
mock.server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if mock.OnAcquireToken != nil {
mock.OnAcquireToken(w, r)
return
}
w.WriteHeader(http.StatusOK)
token := adal.Token{
AccessToken: "Test Token",
NotBefore: strconv.FormatInt(time.Now().UnixNano(), 10),
ExpiresIn: strconv.FormatInt(int64(time.Minute), 10),
}
b := new(bytes.Buffer)
json.NewEncoder(b).Encode(token)
w.Write(b.Bytes())
}))
}
// GetServerURL returns the mock server URL.
func (mock *AADMock)GetServerURL() string {
if mock.server != nil {
return mock.server.URL
}
panic("Mock server is not initialized.")
}
// Close terminates the AAD server mocker.
func (mock *AADMock)Close() {
if mock.server != nil {
mock.server.Close()
mock.server = nil
}
}