mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	This package doesn't really seem to do anything of real interest. Removing it and replacing with a few helper functions. Most of this was maintaining a fork of ctxhttp to support a mock that was unnecessary. We could probably do with a further refactor of the client interface. There is a lot of confusion of between transport, http layer and application layer that makes for some awkward code. This change improves the situation to the point where no breaking changes are introduced. Signed-off-by: Stephen J Day <stephen.day@docker.com>
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package client
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"encoding/json"
 | 
						|
	"fmt"
 | 
						|
	"io/ioutil"
 | 
						|
	"net/http"
 | 
						|
	"strings"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/docker/docker/api/types/swarm"
 | 
						|
	"golang.org/x/net/context"
 | 
						|
)
 | 
						|
 | 
						|
func TestNodeInspectError(t *testing.T) {
 | 
						|
	client := &Client{
 | 
						|
		client: newMockClient(errorMock(http.StatusInternalServerError, "Server error")),
 | 
						|
	}
 | 
						|
 | 
						|
	_, _, err := client.NodeInspectWithRaw(context.Background(), "nothing")
 | 
						|
	if err == nil || err.Error() != "Error response from daemon: Server error" {
 | 
						|
		t.Fatalf("expected a Server Error, got %v", err)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestNodeInspectNodeNotFound(t *testing.T) {
 | 
						|
	client := &Client{
 | 
						|
		client: newMockClient(errorMock(http.StatusNotFound, "Server error")),
 | 
						|
	}
 | 
						|
 | 
						|
	_, _, err := client.NodeInspectWithRaw(context.Background(), "unknown")
 | 
						|
	if err == nil || !IsErrNodeNotFound(err) {
 | 
						|
		t.Fatalf("expected an nodeNotFoundError error, got %v", err)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestNodeInspect(t *testing.T) {
 | 
						|
	expectedURL := "/nodes/node_id"
 | 
						|
	client := &Client{
 | 
						|
		client: newMockClient(func(req *http.Request) (*http.Response, error) {
 | 
						|
			if !strings.HasPrefix(req.URL.Path, expectedURL) {
 | 
						|
				return nil, fmt.Errorf("Expected URL '%s', got '%s'", expectedURL, req.URL)
 | 
						|
			}
 | 
						|
			content, err := json.Marshal(swarm.Node{
 | 
						|
				ID: "node_id",
 | 
						|
			})
 | 
						|
			if err != nil {
 | 
						|
				return nil, err
 | 
						|
			}
 | 
						|
			return &http.Response{
 | 
						|
				StatusCode: http.StatusOK,
 | 
						|
				Body:       ioutil.NopCloser(bytes.NewReader(content)),
 | 
						|
			}, nil
 | 
						|
		}),
 | 
						|
	}
 | 
						|
 | 
						|
	nodeInspect, _, err := client.NodeInspectWithRaw(context.Background(), "node_id")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	if nodeInspect.ID != "node_id" {
 | 
						|
		t.Fatalf("expected `node_id`, got %s", nodeInspect.ID)
 | 
						|
	}
 | 
						|
}
 |