You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ig...@apache.org on 2018/12/19 23:34:24 UTC
[geode-native] branch develop updated: GEODE-5825: Add unit tests
for TcrMessageHelper (#410)
This is an automated email from the ASF dual-hosted git repository.
igodwin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git
The following commit(s) were added to refs/heads/develop by this push:
new 09f720a GEODE-5825: Add unit tests for TcrMessageHelper (#410)
09f720a is described below
commit 09f720a50cf1ddb921815b0c31e0bff0d9b00573
Author: Michael Martell <mm...@pivotal.io>
AuthorDate: Wed Dec 19 15:34:20 2018 -0800
GEODE-5825: Add unit tests for TcrMessageHelper (#410)
- Using the unit test framework to handle the expected
exception.
- Used EXPECT_THROW instead of try/catch.
Co-authored-by: Matthew Reddington <mr...@pivotal.io>
---
cppcache/integration/test/CMakeLists.txt | 1 +
cppcache/integration/test/ChunkedHeaderTest.cpp | 73 +++++++++++++++++++++++++
2 files changed, 74 insertions(+)
diff --git a/cppcache/integration/test/CMakeLists.txt b/cppcache/integration/test/CMakeLists.txt
index f2552ed..f371251 100644
--- a/cppcache/integration/test/CMakeLists.txt
+++ b/cppcache/integration/test/CMakeLists.txt
@@ -14,6 +14,7 @@
# limitations under the License.
add_executable(cpp-integration-test
+ ChunkedHeaderTest.cpp
ExampleTest.cpp
RegionPutGetAllTest.cpp
PdxInstanceTest.cpp
diff --git a/cppcache/integration/test/ChunkedHeaderTest.cpp b/cppcache/integration/test/ChunkedHeaderTest.cpp
new file mode 100644
index 0000000..767c8fc
--- /dev/null
+++ b/cppcache/integration/test/ChunkedHeaderTest.cpp
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <DataInputInternal.hpp>
+#include <TcrMessage.hpp>
+
+#include <gtest/gtest.h>
+
+using apache::geode::client::DataInput;
+using apache::geode::client::DataInputInternal;
+using apache::geode::client::DSCode;
+using apache::geode::client::MessageException;
+using apache::geode::client::Region;
+using apache::geode::client::Serializable;
+using apache::geode::client::TcrMessage;
+using apache::geode::client::TcrMessageHelper;
+using apache::geode::client::ThinClientBaseDM;
+
+namespace {
+class TcrMessageTestFixture : public TcrMessage {
+ public:
+ TcrMessageTestFixture() : TcrMessage() {}
+ virtual ~TcrMessageTestFixture() {}
+};
+} // namespace
+
+TEST(TcrMessageHelperTest, readChunkPartHeaderExpectsAnObject) {
+ TcrMessageTestFixture msg;
+
+ uint8_t fakeBuffer[5] = {0, 0, 0, 1};
+
+ auto input = DataInputInternal(fakeBuffer, sizeof(fakeBuffer));
+
+ uint32_t partLength;
+
+ EXPECT_THROW(TcrMessageHelper::readChunkPartHeader(
+ msg, input,
+ "TcrMessageHelperTest, readChunkPartHeaderExpectsAnObject",
+ partLength, 0),
+ MessageException);
+}
+
+TEST(TcrMessageHelperTest, readChunkPartHeaderExceptionChunkHack) {
+ TcrMessageTestFixture msg;
+
+ uint8_t fakeBuffer[] = {
+ 0, 0, 0, 1, 1, static_cast<uint8_t>(DSCode::JavaSerializable),
+ 0, 0, 0, 0, 0};
+
+ auto input = DataInputInternal(fakeBuffer, sizeof(fakeBuffer));
+
+ uint32_t partLength;
+
+ EXPECT_EQ(TcrMessageHelper::readChunkPartHeader(
+ msg, input,
+ "TcrMessageHelperTest, readChunkPartHeaderExceptionChunkHack",
+ partLength, 64),
+ TcrMessageHelper::ChunkObjectType::EXCEPTION);
+}