Index: blimp/net/blob_channel/blob_channel_sender_unittest.cc |
diff --git a/blimp/net/blob_channel/blob_channel_sender_unittest.cc b/blimp/net/blob_channel/blob_channel_sender_unittest.cc |
index accf966a48f3344816add8497a7028a116e793c2..ac655258224b411d927e6756d07b5a88755021e5 100644 |
--- a/blimp/net/blob_channel/blob_channel_sender_unittest.cc |
+++ b/blimp/net/blob_channel/blob_channel_sender_unittest.cc |
@@ -6,20 +6,23 @@ |
#include <memory> |
#include "base/memory/ptr_util.h" |
+#include "blimp/common/blob_cache/id_util.h" |
#include "blimp/common/blob_cache/mock_blob_cache.h" |
#include "blimp/net/blob_channel/blob_channel_sender_impl.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
-namespace blimp { |
-namespace { |
- |
using testing::_; |
using testing::Pointee; |
using testing::Return; |
+using testing::UnorderedElementsAre; |
+ |
+namespace blimp { |
+namespace { |
const char kBlobId[] = "blob-1"; |
const char kBlobPayload[] = "blob-1-payload"; |
+const char kBlobId2[] = "blob-2"; |
// Helper function for creating a cache payload vector from a string. |
BlobDataPtr CreatePayload(const std::string& input) { |
@@ -54,19 +57,19 @@ class BlobChannelSenderTest : public testing::Test { |
std::unique_ptr<BlobChannelSender> blob_sender_; |
}; |
-TEST_F(BlobChannelSenderTest, TestPutBlob) { |
+TEST_F(BlobChannelSenderTest, PutBlob) { |
EXPECT_CALL(*mock_cache_, |
Put(kBlobId, BlobDataEqual(CreatePayload(kBlobPayload)))); |
EXPECT_CALL(*mock_cache_, Contains(kBlobId)).WillOnce(Return(false)); |
blob_sender_->PutBlob(kBlobId, CreatePayload(kBlobPayload)); |
} |
-TEST_F(BlobChannelSenderTest, TestPutBlobDuplicate) { |
+TEST_F(BlobChannelSenderTest, PutBlobDuplicate) { |
EXPECT_CALL(*mock_cache_, Contains(kBlobId)).WillOnce(Return(true)); |
blob_sender_->PutBlob(kBlobId, CreatePayload(kBlobPayload)); |
} |
-TEST_F(BlobChannelSenderTest, TestPush) { |
+TEST_F(BlobChannelSenderTest, Push) { |
auto payload = CreatePayload(kBlobPayload); |
EXPECT_CALL(*mock_delegate_, DeliverBlob(kBlobId, BlobDataEqual(payload))); |
EXPECT_CALL(*mock_cache_, Contains(kBlobId)) |
@@ -78,5 +81,32 @@ TEST_F(BlobChannelSenderTest, TestPush) { |
blob_sender_->DeliverBlob(kBlobId); |
} |
+TEST_F(BlobChannelSenderTest, GetCachedBlobIds) { |
+ std::string blob_id1 = CalculateBlobId(kBlobId); |
+ std::string blob_id2 = CalculateBlobId(kBlobId2); |
+ BlobDataPtr blob_payload1 = CreatePayload(kBlobPayload); |
+ |
+ EXPECT_CALL(*mock_cache_, Contains(blob_id1)).WillOnce(Return(true)); |
+ EXPECT_CALL(*mock_cache_, Get(blob_id1)).WillOnce(Return(blob_payload1)); |
+ |
+ std::vector<BlobId> cache_state; |
+ cache_state.push_back(blob_id1); |
+ cache_state.push_back(blob_id2); |
+ EXPECT_CALL(*mock_cache_, GetCachedBlobIds()).WillOnce(Return(cache_state)); |
+ |
+ // Mark one of the blobs as delivered. |
+ EXPECT_CALL(*mock_delegate_, |
+ DeliverBlob(blob_id1, BlobDataEqual(blob_payload1))); |
+ blob_sender_->DeliverBlob(blob_id1); |
Wez
2016/07/01 00:30:21
nit: It's strange to group these as a single logic
Kevin M
2016/07/18 16:58:16
Done.
|
+ |
+ std::vector<BlobChannelSender::CacheStateEntry> actual = |
+ blob_sender_->GetCachedBlobIds(); |
+ EXPECT_EQ(2u, actual.size()); |
+ EXPECT_EQ(blob_id1, actual[0].id); |
+ EXPECT_TRUE(actual[0].was_delivered); |
+ EXPECT_EQ(blob_id2, actual[1].id); |
+ EXPECT_FALSE(actual[1].was_delivered); |
+} |
+ |
} // namespace |
} // namespace blimp |