blob: 4a5f18fd893db39c1e415d779240f2734ee5c9f0 [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// 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