|  | // Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "components/payments/core/payment_response.h" | 
|  |  | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace payments { | 
|  |  | 
|  | // Tests that two payment response objects are not equal if their property | 
|  | // values differ or one is missing a value present in the other, and equal | 
|  | // otherwise. Doesn't test all properties of child objects, relying instead on | 
|  | // their respective tests. | 
|  | TEST(PaymentRequestTest, PaymentResponseEquality) { | 
|  | PaymentResponse response1; | 
|  | PaymentResponse response2; | 
|  | EXPECT_EQ(response1, response2); | 
|  |  | 
|  | response1.method_name = "Visa"; | 
|  | EXPECT_NE(response1, response2); | 
|  | response2.method_name = "Mastercard"; | 
|  | EXPECT_NE(response1, response2); | 
|  | response2.method_name = "Visa"; | 
|  | EXPECT_EQ(response1, response2); | 
|  |  | 
|  | std::string stringified_card_response1 = | 
|  | "{ \"cardNumber\": \"4111111111111111\", \"cardSecurityCode\": \"111\", " | 
|  | "\"cardholderName\": \"John Doe\", \"expiryMonth\": \"12\", " | 
|  | "\"expiryYear\": \"2020\" }"; | 
|  | std::string stringified_card_response2 = | 
|  | "{ \"cardNumber\": \"4111111111111111\", \"cardSecurityCode\": \"333\", " | 
|  | "\"cardholderName\": \"John Doe\", \"expiryMonth\": \"12\", " | 
|  | "\"expiryYear\": \"2020\" }"; | 
|  | response1.details = stringified_card_response1; | 
|  | EXPECT_NE(response1, response2); | 
|  | response2.details = stringified_card_response2; | 
|  | EXPECT_NE(response1, response2); | 
|  | response2.details = stringified_card_response1; | 
|  | EXPECT_EQ(response1, response2); | 
|  | } | 
|  |  | 
|  | }  // namespace payments |