Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
320814ac
Commit
320814ac
authored
Mar 01, 2013
by
zhanyong.wan
Browse files
Implements matcher IsEmpty(); also pulls in gtest r643.
parent
edd4ab49
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
2 deletions
+95
-2
include/gmock/gmock-more-matchers.h
include/gmock/gmock-more-matchers.h
+58
-0
include/gmock/gmock.h
include/gmock/gmock.h
+3
-2
test/gmock-matchers_test.cc
test/gmock-matchers_test.cc
+34
-0
No files found.
include/gmock/gmock-more-matchers.h
0 → 100644
View file @
320814ac
// Copyright 2013, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Author: marcus.boerger@google.com (Marcus Boerger)
// Google Mock - a framework for writing C++ mock classes.
//
// This file implements some matchers that depend on gmock-generated-matchers.h.
//
// Note that tests are implemented in gmock-matchers_test.cc rather than
// gmock-more-matchers-test.cc.
#ifndef GMOCK_GMOCK_MORE_MATCHERS_H_
#define GMOCK_GMOCK_MORE_MATCHERS_H_
#include "gmock/gmock-generated-matchers.h"
namespace
testing
{
// Defines a matcher that matches an empty container. The container must
// support both size() and empty(), which all STL-like containers provide.
MATCHER
(
IsEmpty
,
negation
?
"isn't empty"
:
"is empty"
)
{
if
(
arg
.
empty
())
{
return
true
;
}
*
result_listener
<<
"whose size is "
<<
arg
.
size
();
return
false
;
}
}
// namespace testing
#endif // GMOCK_GMOCK_MORE_MATCHERS_H_
include/gmock/gmock.h
View file @
320814ac
...
...
@@ -59,10 +59,11 @@
#include "gmock/gmock-cardinalities.h"
#include "gmock/gmock-generated-actions.h"
#include "gmock/gmock-generated-function-mockers.h"
#include "gmock/gmock-generated-matchers.h"
#include "gmock/gmock-more-actions.h"
#include "gmock/gmock-generated-nice-strict.h"
#include "gmock/gmock-generated-matchers.h"
#include "gmock/gmock-matchers.h"
#include "gmock/gmock-more-actions.h"
#include "gmock/gmock-more-matchers.h"
#include "gmock/internal/gmock-internal-utils.h"
namespace
testing
{
...
...
test/gmock-matchers_test.cc
View file @
320814ac
...
...
@@ -34,6 +34,7 @@
// This file tests some commonly used argument matchers.
#include "gmock/gmock-matchers.h"
#include "gmock/gmock-more-matchers.h"
#include <string.h>
#include <functional>
...
...
@@ -88,6 +89,7 @@ using testing::FloatEq;
using
testing
::
Ge
;
using
testing
::
Gt
;
using
testing
::
HasSubstr
;
using
testing
::
IsEmpty
;
using
testing
::
IsNull
;
using
testing
::
Key
;
using
testing
::
Le
;
...
...
@@ -3603,6 +3605,38 @@ TEST(ByRefTest, AllowsNotCopyableValueInMatchers) {
EXPECT_TRUE
(
m
.
Matches
(
n2
));
}
TEST
(
IsEmptyTest
,
ImplementsIsEmpty
)
{
vector
<
int
>
container
;
EXPECT_THAT
(
container
,
IsEmpty
());
container
.
push_back
(
0
);
EXPECT_THAT
(
container
,
Not
(
IsEmpty
()));
container
.
push_back
(
1
);
EXPECT_THAT
(
container
,
Not
(
IsEmpty
()));
}
TEST
(
IsEmptyTest
,
WorksWithString
)
{
string
text
;
EXPECT_THAT
(
text
,
IsEmpty
());
text
=
"foo"
;
EXPECT_THAT
(
text
,
Not
(
IsEmpty
()));
text
=
string
(
"
\0
"
,
1
);
EXPECT_THAT
(
text
,
Not
(
IsEmpty
()));
}
TEST
(
IsEmptyTest
,
CanDescribeSelf
)
{
Matcher
<
vector
<
int
>
>
m
=
IsEmpty
();
EXPECT_EQ
(
"is empty"
,
Describe
(
m
));
EXPECT_EQ
(
"isn't empty"
,
DescribeNegation
(
m
));
}
TEST
(
IsEmptyTest
,
ExplainsResult
)
{
Matcher
<
vector
<
int
>
>
m
=
IsEmpty
();
vector
<
int
>
container
;
EXPECT_EQ
(
""
,
Explain
(
m
,
container
));
container
.
push_back
(
0
);
EXPECT_EQ
(
"whose size is 1"
,
Explain
(
m
,
container
));
}
#if GTEST_HAS_TYPED_TEST
// Tests ContainerEq with different container types, and
// different element types.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment