1# Copyright (c) 2020 Ultimaker B.V.
2# Uranium is released under the terms of the LGPLv3 or higher.
3
4from UM.Workspace.WorkspaceMetadataStorage import WorkspaceMetadataStorage
5
6
7def test_setEntryToStore():
8    storage = WorkspaceMetadataStorage()
9    storage.setEntryToStore("test", "bloop", 12)
10    assert storage.getPluginMetadata("test") == {"bloop": 12}
11
12
13def test_setNestedEntryToStore():
14    storage = WorkspaceMetadataStorage()
15    storage.setEntryToStore("test", "bloop", {"zomg": "blorp"})
16    assert storage.getPluginMetadata("test") == {"bloop": {"zomg": "blorp"}}
17
18
19def test_setMultipleEntriesToStore():
20    storage = WorkspaceMetadataStorage()
21    storage.setEntryToStore("test", "bloop", 13)
22    storage.setEntryToStore("test", "bloop2", 32)
23
24    metadata = storage.getPluginMetadata("test")
25    assert len(metadata.keys()) == 2
26    assert metadata["bloop"] == 13
27    assert metadata["bloop2"] == 32
28
29
30def test_getUnknownEntry():
31    storage = WorkspaceMetadataStorage()
32    storage.setEntryToStore("test", "bloop", 12)
33    assert storage.getPluginMetadata("unknown") == {}
34
35
36def test_setAllDataAndClear():
37    storage = WorkspaceMetadataStorage()
38    storage.setAllData({"zomg": {"value": "zomg"}})
39    assert storage.getPluginMetadata("zomg") == {"value": "zomg"}
40
41    storage.clear()
42    assert storage.getPluginMetadata("zomg") == {}
43
44
45def test_getAllData():
46    storage = WorkspaceMetadataStorage()
47    storage.setEntryToStore("test", "bloop", 13)
48    storage.setEntryToStore("test_2", "bloop", 34)
49
50    data = storage.getAllData()
51    assert len(data.keys()) == 2
52    assert data["test"]["bloop"] == 13
53    assert data["test_2"]["bloop"] == 34