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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include "impl/share.h"
#include "mega/types.h"
#include <gtest/gtest.h>
#include <vector>
using namespace ::mega::impl;
using ::mega::Share;
class ShareSorterTest: public ::testing::Test
{
protected:
void SetUp() override;
std::vector<Share> mShares;
std::vector<ShareData> mShareDatas;
};
void ShareSorterTest::SetUp()
{
Test::SetUp();
// Share with a smaller timestamp is created earlier
mShares = {
Share{nullptr, mega::RDONLY, 20},
Share{nullptr, mega::RDONLY, 10},
Share{nullptr, mega::RDONLY, 30},
};
mShareDatas = {
{1, &mShares[0], true},
{2, &mShares[1], true},
{3, &mShares[2], true},
};
}
TEST_F(ShareSorterTest, SortByShareCreationTimeAscendingly)
{
ShareSorter::sort(mShareDatas, ::mega::MegaApi::ORDER_SHARE_CREATION_ASC);
ASSERT_EQ(mShareDatas[0].getNodeHandle(), 2);
ASSERT_EQ(mShareDatas[1].getNodeHandle(), 1);
ASSERT_EQ(mShareDatas[2].getNodeHandle(), 3);
}
TEST_F(ShareSorterTest, SortByShareCreationTimeDescendingly)
{
ShareSorter::sort(mShareDatas, ::mega::MegaApi::ORDER_SHARE_CREATION_DESC);
ASSERT_EQ(mShareDatas[0].getNodeHandle(), 3);
ASSERT_EQ(mShareDatas[1].getNodeHandle(), 1);
ASSERT_EQ(mShareDatas[2].getNodeHandle(), 2);
}
TEST_F(ShareSorterTest, SortByOthersDoesNotChangeOrder)
{
ShareSorter::sort(mShareDatas, ::mega::MegaApi::ORDER_NONE);
ASSERT_EQ(mShareDatas[0].getNodeHandle(), 1);
ASSERT_EQ(mShareDatas[1].getNodeHandle(), 2);
ASSERT_EQ(mShareDatas[2].getNodeHandle(), 3);
ShareSorter::sort(mShareDatas, ::mega::MegaApi::ORDER_CREATION_DESC);
ASSERT_EQ(mShareDatas[0].getNodeHandle(), 1);
ASSERT_EQ(mShareDatas[1].getNodeHandle(), 2);
ASSERT_EQ(mShareDatas[2].getNodeHandle(), 3);
}
|