package responses
import (
"bytes"
"github.com/stretchr/testify/assert"
"testing"
)
var errorData = `
3
API key is not valid
`
var invalidErrorData = `
3
API key is not valid
`
var successData = `
`
var invalidSuccessData = `
`
func TestParseAsError(t *testing.T) {
result, err := ParseAsError(bytes.NewBufferString(errorData))
assert.NoError(t, err)
assert.Equal(t, 3, result.Code, "error code")
assert.Equal(t, "API key is not valid", result.Message, "error message")
_, err = ParseAsSuccess(bytes.NewBufferString(invalidErrorData))
assert.Error(t, err)
}
func TestError_Error(t *testing.T) {
result, err := ParseAsError(bytes.NewBufferString(errorData))
assert.NoError(t, err)
assert.Error(t, result)
assert.Equal(t, result.Error(), "Error from crowdin: API key is not valid (error code 3)", "error message")
}
func TestParseAsSuccess(t *testing.T) {
result, err := ParseAsSuccess(bytes.NewBufferString(successData))
assert.NoError(t, err)
assert.Len(t, result.Stats, 1, "files")
assert.Equal(t, result.Stats[0].Status, "skipped", "status of first file")
assert.Equal(t, result.Stats[0].Name, "demo.ini", "name of first file")
_, err = ParseAsError(bytes.NewBufferString(invalidSuccessData))
assert.Error(t, err)
}