github.com/go-chef/chef@v0.30.1/license_test.go (about) 1 package chef 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "io" 7 "log" 8 "net/http" 9 "os" 10 "reflect" 11 "testing" 12 ) 13 14 var ( 15 testLicenseJSON = "test/license.json" 16 ) 17 18 func TestLicenseFromJSONDecoder(t *testing.T) { 19 if file, err := os.Open(testLicenseJSON); err != nil { 20 t.Error("Unexpected error '", err, "' during os.Open on", testLicenseJSON) 21 } else { 22 dec := json.NewDecoder(file) 23 var g License 24 if err := dec.Decode(&g); err == io.EOF { 25 log.Fatal(g) 26 } else if err != nil { 27 log.Fatal(err) 28 } 29 } 30 } 31 32 func TestLicenseGet(t *testing.T) { 33 setup() 34 defer teardown() 35 36 mux.HandleFunc("/license", func(w http.ResponseWriter, r *http.Request) { 37 dec := json.NewDecoder(r.Body) 38 var request License 39 dec.Decode(&request) 40 switch { 41 case r.Method == "GET": 42 fmt.Fprintf(w, `{ 43 "limit_exceeded": false, 44 "node_license": 25, 45 "node_count": 12, 46 "upgrade_url": "http://www.chef.io/contact/on-premises-simple" 47 }`) 48 } 49 }) 50 51 wantLicense := License{ 52 LimitExceeded: false, 53 NodeLicense: 25, 54 NodeCount: 12, 55 UpgradeUrl: "http://www.chef.io/contact/on-premises-simple", 56 } 57 58 license, err := client.License.Get() 59 if err != nil { 60 t.Errorf("License.Get returned error: %s", err.Error()) 61 } 62 if !reflect.DeepEqual(license, wantLicense) { 63 t.Errorf("License.Get returned %+v, want %+v", license, wantLicense) 64 } 65 66 }