summaryrefslogtreecommitdiff
path: root/test/annotations/sprite_store.cpp
blob: 287efaedab85b8eb01162621e7d267b5015a8727 (plain)
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
#include "../fixtures/util.hpp"

#include <mbgl/annotation/sprite_store.hpp>

using namespace mbgl;

TEST(Annotations, SpriteStore) {
    const auto sprite1 = std::make_shared<SpriteImage>(8, 8, 2, std::string(16 * 16 * 4, '\0'));
    const auto sprite2 = std::make_shared<SpriteImage>(8, 8, 2, std::string(16 * 16 * 4, '\0'));
    const auto sprite3 = std::make_shared<SpriteImage>(8, 8, 2, std::string(16 * 16 * 4, '\0'));

    using Sprites = std::map<std::string, std::shared_ptr<const SpriteImage>>;
    SpriteStore store(2);

    // Adding single
    store.setSprite("one", sprite1);
    EXPECT_EQ(Sprites({
        { "one", sprite1 },
    }), store.getDirty());
    EXPECT_EQ(Sprites(), store.getDirty());

    // Adding multiple
    store.setSprite("two", sprite2);
    store.setSprite("three", sprite3);
    EXPECT_EQ(Sprites({
        { "two", sprite2 },
        { "three", sprite3 },
    }), store.getDirty());
    EXPECT_EQ(Sprites(), store.getDirty());

    // Removing
    store.removeSprite("one");
    store.removeSprite("two");
    EXPECT_EQ(Sprites({
        { "one", nullptr },
        { "two", nullptr },
    }), store.getDirty());
    EXPECT_EQ(Sprites(), store.getDirty());

    // Accessing
    EXPECT_EQ(sprite3, store.getSprite("three"));
    EXPECT_EQ(nullptr, store.getSprite("two"));
    EXPECT_EQ(nullptr, store.getSprite("four"));

    // Overwriting
    store.setSprite("three", sprite1);
    EXPECT_EQ(Sprites({
        { "three", sprite1 },
    }), store.getDirty());
    EXPECT_EQ(Sprites(), store.getDirty());
}