github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/clients/go/test/api_locales_test.go (about)

     1  /*
     2  Phrase Strings API Reference
     3  
     4  Testing LocalesApiService
     5  
     6  */
     7  
     8  // Code generated by OpenAPI Generator (https://openapi-generator.tech);
     9  
    10  package phrase
    11  
    12  import (
    13  	"context"
    14  	"net/http"
    15  	"net/http/httptest"
    16  	"testing"
    17  
    18  	"github.com/antihax/optional"
    19  	"github.com/phrase/phrase-go/v3" // x-release-please-major
    20  	"github.com/stretchr/testify/assert"
    21  	"github.com/stretchr/testify/require"
    22  )
    23  
    24  func Test_phrase_LocalesApiService(t *testing.T) {
    25  	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    26  		// Send the mock response
    27  		response := `{"id":"1","name":"English","code":"DE","default":true,"main":true,"rtl":true,"plural_forms":["plural_forms"]}`
    28  		w.Header().Set("Content-Type", "application/json")
    29  		w.WriteHeader(http.StatusOK)
    30  
    31  		w.Write([]byte(response))
    32  	}))
    33  
    34  	defer server.Close()
    35  
    36  	configuration := phrase.NewConfiguration()
    37  	configuration.BasePath = server.URL
    38  	apiClient := phrase.NewAPIClient(configuration)
    39  
    40  	t.Run("Test LocalesApiService LocaleDownload", func(t *testing.T) {
    41  		formatOptions := optional.NewInterface(map[string]interface{}{
    42  			"foo": "bar",
    43  			"baz": "bazz",
    44  		})
    45  		localeDownloadOpts := phrase.LocaleDownloadOpts{FormatOptions: formatOptions}
    46  
    47  		resp, httpRes, err := apiClient.LocalesApi.LocaleDownload(context.Background(), "project_id_example", "locale_id", &localeDownloadOpts)
    48  		requestUrl := httpRes.Request.URL
    49  
    50  		require.Nil(t, err)
    51  		require.NotNil(t, resp)
    52  		assert.Equal(t, 200, httpRes.StatusCode)
    53  		assert.Equal(t, "format_options%5Bbaz%5D=bazz&format_options%5Bfoo%5D=bar", requestUrl.RawQuery)
    54  		assert.Equal(t, "/projects/project_id_example/locales/locale_id/download", requestUrl.Path)
    55  		assert.Equal(t, "GET", httpRes.Request.Method)
    56  	})
    57  
    58  	t.Run("Test LocalesApiService LocaleShow", func(t *testing.T) {
    59  		localeShowOpts := phrase.LocaleShowOpts{}
    60  		resp, httpRes, err := apiClient.LocalesApi.LocaleShow(context.Background(), "project_id_example", "locale_id", &localeShowOpts)
    61  		requestUrl := httpRes.Request.URL
    62  
    63  		require.Nil(t, err)
    64  		require.NotNil(t, resp)
    65  		assert.Equal(t, 200, httpRes.StatusCode)
    66  		assert.Equal(t, "1", resp.Id)
    67  		assert.Equal(t, "DE", resp.Code)
    68  		assert.Equal(t, "English", resp.Name)
    69  		assert.Equal(t, "/projects/project_id_example/locales/locale_id", requestUrl.Path)
    70  		assert.Equal(t, "GET", httpRes.Request.Method)
    71  	})
    72  
    73  	t.Run("Test LocalesApiService LocaleUpdate", func(t *testing.T) {
    74  		localeUpdateOpts := phrase.LocaleUpdateOpts{}
    75  		localeUpdateParameters := phrase.LocaleUpdateParameters{}
    76  		resp, httpRes, err := apiClient.LocalesApi.LocaleUpdate(context.Background(), "project_id_example", "locale_id", localeUpdateParameters, &localeUpdateOpts)
    77  		requestUrl := httpRes.Request.URL
    78  
    79  		require.Nil(t, err)
    80  		require.NotNil(t, resp)
    81  		assert.Equal(t, 200, httpRes.StatusCode)
    82  		assert.Equal(t, "1", resp.Id)
    83  		assert.Equal(t, "DE", resp.Code)
    84  		assert.Equal(t, "English", resp.Name)
    85  		assert.Equal(t, "/projects/project_id_example/locales/locale_id", requestUrl.Path)
    86  		assert.Equal(t, "PATCH", httpRes.Request.Method)
    87  	})
    88  
    89  	t.Run("Test LocalesApiService LocalesList", func(t *testing.T) {
    90  		server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    91  			// Send the mock response
    92  			response := `[{"id":"1","name":"English","code":"DE","default":true,"main":true,"rtl":true,"plural_forms":["plural_forms"]}]`
    93  			w.Header().Set("Content-Type", "application/json")
    94  			w.WriteHeader(http.StatusOK)
    95  
    96  			w.Write([]byte(response))
    97  		}))
    98  
    99  		defer server.Close()
   100  
   101  		configuration := phrase.NewConfiguration()
   102  		configuration.BasePath = server.URL
   103  		apiClient := phrase.NewAPIClient(configuration)
   104  
   105  		localVarOptionals := phrase.LocalesListOpts{}
   106  		resp, httpRes, err := apiClient.LocalesApi.LocalesList(context.Background(), "project_id_example", &localVarOptionals)
   107  		requestUrl := httpRes.Request.URL
   108  		locale := resp[0]
   109  
   110  		require.Nil(t, err)
   111  		require.NotNil(t, resp)
   112  		assert.Equal(t, 200, httpRes.StatusCode)
   113  		assert.Equal(t, 1, len(resp))
   114  		assert.Equal(t, "1", locale.Id)
   115  		assert.Equal(t, "DE", locale.Code)
   116  		assert.Equal(t, "English", locale.Name)
   117  		assert.Equal(t, "/projects/project_id_example/locales", requestUrl.Path)
   118  		assert.Equal(t, "GET", httpRes.Request.Method)
   119  	})
   120  
   121  }