File: share_test.cpp

package info (click to toggle)
megacmd 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 32,592 kB
  • sloc: cpp: 326,437; ansic: 34,524; python: 4,630; java: 3,965; sh: 2,869; objc: 2,459; makefile: 197; xml: 113
file content (63 lines) | stat: -rw-r--r-- 1,782 bytes parent folder | download | duplicates (2)
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);
}