github.com/kisexp/xdchain@v0.0.0-20211206025815-490d6b732aa7/private/engine/tessera/tessera_version_reader_test.go (about) 1 package tessera 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 8 "github.com/kisexp/xdchain/private/engine" 9 testifyassert "github.com/stretchr/testify/assert" 10 ) 11 12 func TestVersionApi_404NotFound(t *testing.T) { 13 assert := testifyassert.New(t) 14 15 mux := http.NewServeMux() 16 17 testServer = httptest.NewServer(mux) 18 defer testServer.Close() 19 20 version := RetrieveTesseraAPIVersion(&engine.Client{ 21 HttpClient: &http.Client{}, 22 BaseURL: testServer.URL, 23 }) 24 25 assert.Equal(apiVersion1, version) 26 } 27 28 func TestVersionApi_GarbageData(t *testing.T) { 29 assert := testifyassert.New(t) 30 31 mux := http.NewServeMux() 32 mux.HandleFunc("/version/api", func(writer http.ResponseWriter, request *http.Request) { 33 writer.Write([]byte("GARBAGE")) 34 }) 35 36 testServer = httptest.NewServer(mux) 37 defer testServer.Close() 38 39 version := RetrieveTesseraAPIVersion(&engine.Client{ 40 HttpClient: &http.Client{}, 41 BaseURL: testServer.URL, 42 }) 43 44 assert.Equal(apiVersion1, version) 45 } 46 47 func TestVersionApi_emptyVersionsArray(t *testing.T) { 48 assert := testifyassert.New(t) 49 50 mux := http.NewServeMux() 51 mux.HandleFunc("/version/api", func(writer http.ResponseWriter, request *http.Request) { 52 writer.Write([]byte("[]")) 53 }) 54 55 testServer = httptest.NewServer(mux) 56 defer testServer.Close() 57 58 version := RetrieveTesseraAPIVersion(&engine.Client{ 59 HttpClient: &http.Client{}, 60 BaseURL: testServer.URL, 61 }) 62 63 assert.Equal(apiVersion1, version) 64 } 65 66 func TestVersionApi_invalidVersionItem(t *testing.T) { 67 assert := testifyassert.New(t) 68 69 mux := http.NewServeMux() 70 mux.HandleFunc("/version/api", func(writer http.ResponseWriter, request *http.Request) { 71 writer.Write([]byte("{\"versions\":[{\"version\":\"1.0\"},{}]}")) 72 }) 73 74 testServer = httptest.NewServer(mux) 75 defer testServer.Close() 76 77 version := RetrieveTesseraAPIVersion(&engine.Client{ 78 HttpClient: &http.Client{}, 79 BaseURL: testServer.URL, 80 }) 81 82 assert.Equal(apiVersion1, version) 83 } 84 85 func TestVersionApi_validVersionInWrongOrder(t *testing.T) { 86 assert := testifyassert.New(t) 87 88 mux := http.NewServeMux() 89 mux.HandleFunc("/version/api", func(writer http.ResponseWriter, request *http.Request) { 90 writer.Write([]byte("[\"2.0\",\"1.0\"]")) 91 }) 92 93 testServer = httptest.NewServer(mux) 94 defer testServer.Close() 95 96 version := RetrieveTesseraAPIVersion(&engine.Client{ 97 HttpClient: &http.Client{}, 98 BaseURL: testServer.URL, 99 }) 100 101 assert.Equal("2.0", version) 102 } 103 104 func TestVersionApi_validVersion(t *testing.T) { 105 assert := testifyassert.New(t) 106 107 mux := http.NewServeMux() 108 mux.HandleFunc("/version/api", func(writer http.ResponseWriter, request *http.Request) { 109 writer.Write([]byte("[\"1.0\",\"2.0\"]")) 110 }) 111 112 testServer = httptest.NewServer(mux) 113 defer testServer.Close() 114 115 version := RetrieveTesseraAPIVersion(&engine.Client{ 116 HttpClient: &http.Client{}, 117 BaseURL: testServer.URL, 118 }) 119 120 assert.Equal("2.0", version) 121 }