| // Copyright 2019 The Fuchsia 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 <fuchsia/examples/cpp/fidl.h> |
| #include <lib/fostr/fidl/fuchsia/examples/formatting.h> |
| |
| #include <gtest/gtest.h> |
| |
| #include "lib/fidl/cpp/builder.h" |
| |
| namespace fuchsia { |
| namespace examples { |
| |
| template <typename T> |
| bool operator==(const T& lhs, const T& rhs) { |
| return ::fidl::Equals(lhs, rhs); |
| } |
| |
| // By using fostr, the << operator is automatically overloaded in the proper |
| // namespace. Otherwise, you can define a custom operator as so: |
| // |
| // std::ostream& operator<<(std::ostream& os, const Car& value) { |
| // return os << "Car(num_wheels=" << value.num_wheels << ")"; |
| // } |
| |
| } // namespace examples |
| } // namespace fuchsia |
| |
| namespace { |
| |
| TEST(NiceOutput, ExampleFailure) { |
| using namespace fuchsia::examples; |
| |
| Car actual; |
| Wheel actual_wheel1; |
| actual_wheel1.brand = "Superfast"; |
| Wheel actual_wheel2; |
| actual_wheel2.brand = "Notsofast"; |
| actual.wheels.emplace_back(std::move(actual_wheel1)); |
| actual.wheels.emplace_back(std::move(actual_wheel2)); |
| |
| Car expected; |
| |
| EXPECT_EQ(actual, expected); |
| } |
| |
| } // namespace |