Hash :
64af27bd
Author :
Date :
2015-03-19T13:42:14
Make Optional a proper helper class. Move this to a common area, out of perf tests. Change-Id: I53d36accfe0c53789c007edfb20ba7e964947def Reviewed-on: https://chromium-review.googlesource.com/260643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
//
// Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Unit tests for ANGLE's Optional helper class.
//
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "common/Optional.h"
namespace
{
TEST(OptionalTest, BasicInvalid)
{
Optional<int> testInvalid;
ASSERT_FALSE(testInvalid.valid());
ASSERT_EQ(Optional<int>::None(), testInvalid);
}
TEST(OptionalTest, BasicValid)
{
Optional<int> testValid(3);
ASSERT_TRUE(testValid.valid());
ASSERT_EQ(3, testValid.value());
ASSERT_NE(Optional<int>::None(), testValid);
}
TEST(OptionalTest, Copies)
{
Optional<int> testValid(3);
Optional<int> testInvalid;
Optional<int> testCopy = testInvalid;
ASSERT_FALSE(testCopy.valid());
ASSERT_EQ(testInvalid, testCopy);
testCopy = testValid;
ASSERT_TRUE(testCopy.valid());
ASSERT_EQ(3, testCopy.value());
ASSERT_EQ(testValid, testCopy);
}
} // namespace