コード例 #1
0
ファイル: product_test.go プロジェクト: mxmCherry/goshop
func TestUpdateProductInvalidName(t *testing.T) {

	invalidNames := []string{
		"",              // empty
		" ",             // whitespaces only
		" Left space",   // non-left-trimmed
		"Right space ",  // non-right-trimmed
		" Not trimmed ", // non-trimmed
	}

	for _, invalidName := range invalidNames {

		product := data.Product{
			ID:   0,
			Name: generateName("Product"),
			Price: data.Price{
				Vat:   20,
				Net:   100,
				Gross: 0,
			},
		}

		createProduct(&product)

		product.Name = invalidName

		err := Error{}

		resp := putJSON(
			fmt.Sprintf("%s/products/%d", getURL(), product.ID),
			product,
			&err,
		)

		// permit non-400 status in favor of 500 for now;
		// TODO: allow only 400-status
		if !(resp.StatusCode == http.StatusBadRequest || resp.StatusCode == http.StatusInternalServerError) {
			t.Errorf("Got status: %d, expected: %d or %d", resp.StatusCode, http.StatusBadRequest, http.StatusInternalServerError)
		}

		if err.Message == "" {
			t.Error("Got empty error message")
		}

	}

}