blob: 5db00129d6e11d4f2b6a5a6f75c711554069ee89 [file] [log] [blame]
Alex Vakulenkob3aac252014-05-07 17:35:24 -07001// Copyright 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Alex Vakulenkob3aac252014-05-07 17:35:24 -07005#include <base/files/file_path.h>
Alex Vakulenko5841c302014-07-23 10:49:49 -07006#include <gtest/gtest.h>
Alex Vakulenkob3aac252014-05-07 17:35:24 -07007
8#include "buffet/error.h"
9
Alex Vakulenkoaf23b322014-05-08 16:25:45 -070010using buffet::Error;
Alex Vakulenkob3aac252014-05-07 17:35:24 -070011
12namespace {
13
Alex Vakulenkoaf23b322014-05-08 16:25:45 -070014buffet::ErrorPtr GenerateNetworkError() {
Alex Vakulenkob3aac252014-05-07 17:35:24 -070015 return Error::Create("network", "not_found", "Resource not found");
16}
17
Alex Vakulenkoaf23b322014-05-08 16:25:45 -070018buffet::ErrorPtr GenerateHttpError() {
Alex Vakulenkob3aac252014-05-07 17:35:24 -070019 auto inner = GenerateNetworkError();
20 return Error::Create("HTTP", "404", "Not found", std::move(inner));
21}
22
23} // namespace
24
25TEST(Error, Single) {
26 auto err = GenerateNetworkError();
27 EXPECT_EQ("network", err->GetDomain());
28 EXPECT_EQ("not_found", err->GetCode());
29 EXPECT_EQ("Resource not found", err->GetMessage());
30 EXPECT_EQ(nullptr, err->GetInnerError());
31 EXPECT_TRUE(err->HasDomain("network"));
32 EXPECT_FALSE(err->HasDomain("HTTP"));
33 EXPECT_FALSE(err->HasDomain("foo"));
34 EXPECT_TRUE(err->HasError("network", "not_found"));
35 EXPECT_FALSE(err->HasError("network", "404"));
36 EXPECT_FALSE(err->HasError("HTTP", "404"));
37 EXPECT_FALSE(err->HasError("HTTP", "not_found"));
38 EXPECT_FALSE(err->HasError("foo", "bar"));
39}
40
41TEST(Error, Nested) {
42 auto err = GenerateHttpError();
43 EXPECT_EQ("HTTP", err->GetDomain());
44 EXPECT_EQ("404", err->GetCode());
45 EXPECT_EQ("Not found", err->GetMessage());
46 EXPECT_NE(nullptr, err->GetInnerError());
47 EXPECT_EQ("network", err->GetInnerError()->GetDomain());
48 EXPECT_TRUE(err->HasDomain("network"));
49 EXPECT_TRUE(err->HasDomain("HTTP"));
50 EXPECT_FALSE(err->HasDomain("foo"));
51 EXPECT_TRUE(err->HasError("network", "not_found"));
52 EXPECT_FALSE(err->HasError("network", "404"));
53 EXPECT_TRUE(err->HasError("HTTP", "404"));
54 EXPECT_FALSE(err->HasError("HTTP", "not_found"));
55 EXPECT_FALSE(err->HasError("foo", "bar"));
56}