blob: f218913fb2d0db68e39a4769538277464d86c919 [file] [log] [blame]
Ben Chanb6ce1782013-05-27 01:00:02 -07001// Copyright (c) 2013 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
5#include "mist/usb_error.h"
6
7#include <gtest/gtest.h>
8
9namespace mist {
10
11TEST(UsbErrorTest, DefaultConstructor) {
12 UsbError error;
13 EXPECT_TRUE(error.IsSuccess());
14 EXPECT_EQ(UsbError::kSuccess, error.type());
15}
16
17TEST(UsbErrorTest, ConstructorWithType) {
18 UsbError error(UsbError::kErrorInvalidParameter);
19 EXPECT_FALSE(error.IsSuccess());
20 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
21}
22
23TEST(UsbErrorTest, ConstructorWithLibUsbError) {
24 UsbError error(LIBUSB_ERROR_INVALID_PARAM);
25 EXPECT_FALSE(error.IsSuccess());
26 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
27}
28
29TEST(UsbErrorTest, IsSuccess) {
30 UsbError error;
31 EXPECT_TRUE(error.IsSuccess());
32
33 error.set_type(UsbError::kErrorIO);
34 EXPECT_FALSE(error.IsSuccess());
35
36 error.set_type(UsbError::kSuccess);
37 EXPECT_TRUE(error.IsSuccess());
38}
39
40TEST(UsbErrorTest, Clear) {
41 UsbError error(UsbError::kErrorIO);
42 EXPECT_EQ(UsbError::kErrorIO, error.type());
43 EXPECT_FALSE(error.IsSuccess());
44
45 error.Clear();
46 EXPECT_EQ(UsbError::kSuccess, error.type());
47 EXPECT_TRUE(error.IsSuccess());
48}
49
50TEST(UsbError, SetFromLibUsbError) {
51 UsbError error;
52
53 error.SetFromLibUsbError(LIBUSB_SUCCESS);
54 EXPECT_EQ(UsbError::kSuccess, error.type());
55
56 error.SetFromLibUsbError(LIBUSB_ERROR_IO);
57 EXPECT_EQ(UsbError::kErrorIO, error.type());
58
59 error.SetFromLibUsbError(LIBUSB_ERROR_INVALID_PARAM);
60 EXPECT_EQ(UsbError::kErrorInvalidParameter, error.type());
61
62 error.SetFromLibUsbError(LIBUSB_ERROR_ACCESS);
63 EXPECT_EQ(UsbError::kErrorAccess, error.type());
64
65 error.SetFromLibUsbError(LIBUSB_ERROR_NO_DEVICE);
66 EXPECT_EQ(UsbError::kErrorNoDevice, error.type());
67
68 error.SetFromLibUsbError(LIBUSB_ERROR_NOT_FOUND);
69 EXPECT_EQ(UsbError::kErrorNotFound, error.type());
70
71 error.SetFromLibUsbError(LIBUSB_ERROR_BUSY);
72 EXPECT_EQ(UsbError::kErrorBusy, error.type());
73
74 error.SetFromLibUsbError(LIBUSB_ERROR_TIMEOUT);
75 EXPECT_EQ(UsbError::kErrorTimeout, error.type());
76
77 error.SetFromLibUsbError(LIBUSB_ERROR_OVERFLOW);
78 EXPECT_EQ(UsbError::kErrorOverflow, error.type());
79
80 error.SetFromLibUsbError(LIBUSB_ERROR_PIPE);
81 EXPECT_EQ(UsbError::kErrorPipe, error.type());
82
83 error.SetFromLibUsbError(LIBUSB_ERROR_INTERRUPTED);
84 EXPECT_EQ(UsbError::kErrorInterrupted, error.type());
85
86 error.SetFromLibUsbError(LIBUSB_ERROR_NO_MEM);
87 EXPECT_EQ(UsbError::kErrorNoMemory, error.type());
88
89 error.SetFromLibUsbError(LIBUSB_ERROR_NOT_SUPPORTED);
90 EXPECT_EQ(UsbError::kErrorNotSupported, error.type());
91
92 error.SetFromLibUsbError(LIBUSB_ERROR_OTHER);
93 EXPECT_EQ(UsbError::kErrorOther, error.type());
94}
95
96} // namespace mist