示例#1
0
func Test_EditAddress(t *testing.T) {

	Convey("with shop identifier", t, func() {
		shopID := cart.InsertTestData()
		So(shopID, ShouldNotBeNil)
		qs := make(url.Values, 0)
		qs.Add("shop", shopID.Hex())

		cust := cart.Customer{
			ShopId:    *shopID,
			FirstName: "Alex",
			LastName:  "Ninneman",
			Email:     time.Now().Format(time.RFC3339Nano) + "@gmail.com",
			Password:  "******",
		}
		response = httprunner.JsonRequest("POST", "/shopify/customers", &qs, cust, AddCustomer)
		So(response.Code, ShouldEqual, 200)
		So(json.Unmarshal(response.Body.Bytes(), &cust), ShouldBeNil)

		addr := cart.CustomerAddress{
			Address1:     "1119 Sunset Lane",
			City:         "Altoona",
			Company:      "AN & Co.",
			FirstName:    "Alex",
			LastName:     "Ninneman",
			Phone:        "7153082604",
			Province:     "Wisconsin",
			ProvinceCode: "WI",
			Country:      "US",
			CountryCode:  "US",
			CountryName:  "United States",
			Zip:          "54720",
		}

		response = httprunner.ParameterizedJsonRequest("POST", "/shopify/customers/:id/addresses", "/shopify/customers/"+cust.Id.Hex()+"/addresses", &qs, &addr, AddAddress)
		So(response.Code, ShouldEqual, 200)
		So(json.Unmarshal(response.Body.Bytes(), &addr), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/1234/addresses/1234", &qs, &addr, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+shopID.Hex()+"/addresses/1234", &qs, &cust, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+cust.Id.Hex()+"/addresses/1234", &qs, &cust, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+cust.Id.Hex()+"/addresses/"+addr.Id.Hex(), &qs, &cart.Shop{}, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+cust.Id.Hex()+"/addresses/"+addr.Id.Hex(), &qs, &cart.CustomerAddress{}, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+cust.Id.Hex()+"/addresses/"+cust.Id.Hex(), &qs, &addr, EditAddress)
		So(response.Code, ShouldEqual, 500)
		So(json.Unmarshal(response.Body.Bytes(), &apierror.ApiErr{}), ShouldBeNil)

		addr.Name = "Test Address"
		response = httprunner.ParameterizedJsonRequest("PUT", "/shopify/customers/:id/addresses/:address", "/shopify/customers/"+cust.Id.Hex()+"/addresses/"+addr.Id.Hex(), &qs, &addr, EditAddress)
		So(response.Code, ShouldEqual, 200)
		So(json.Unmarshal(response.Body.Bytes(), &addr), ShouldBeNil)
	})
}