diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/Tag.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/Tag.java
index e9e8aa26a8030f47d19412ad57ec8f1ed737da0f..6cae028c9ce558bdb2f7be65461a99cd46932b23 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/Tag.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/Tag.java
@@ -60,6 +60,11 @@ public class Tag implements ProvidesID
 		this.name = name;
 	}
 
+	public void setReferringTransactions(List<Transaction> referringTransactions)
+	{
+		this.referringTransactions = referringTransactions;
+	}
+
 	public List<Transaction> getReferringTransactions()
 	{
 		return referringTransactions;
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
index 87f43c724e30721ecb361d60e50902ba444267be..c35ef92e0af5d5eb43e4639e32e64043de2771b8 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -54,7 +55,7 @@ public class TagService implements Resettable, AccessAllEntities<Tag>
 
 	public Map<String, Integer> getUsageCounts()
 	{
-		HashMap<String, Integer> usageCounts = new HashMap<>();
+		HashMap<String, Integer> usageCounts = new LinkedHashMap<>();
 
 		final List<Tag> tags = getAllEntitiesAsc();
 		for(Tag tag : tags)
diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TagServiceTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TagServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c58555ad3c049d23161a9cb35ea854b343dae04
--- /dev/null
+++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/TagServiceTest.java
@@ -0,0 +1,71 @@
+package de.deadlocker8.budgetmaster.unit;
+
+import de.deadlocker8.budgetmaster.tags.Tag;
+import de.deadlocker8.budgetmaster.tags.TagRepository;
+import de.deadlocker8.budgetmaster.tags.TagService;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
+import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@ExtendWith(SpringExtension.class)
+@LocalizedTest
+class TagServiceTest
+{
+	@Mock
+	private TagRepository tagRepository;
+
+	@InjectMocks
+	private TagService tagService;
+
+	final Tag tag_1 = new Tag("car stuff");
+	final Tag tag_2 = new Tag("fruits");
+	final Tag tag_3 = new Tag("10");
+	final Tag tag_4 = new Tag("0");
+	final Tag tag_5 = new Tag("1");
+	final Tag tag_6 = new Tag("Fruits");
+
+	@Test
+	void test_getAllTags()
+	{
+		List<Tag> tags = new ArrayList<>(List.of(tag_1, tag_2, tag_3, tag_4, tag_5, tag_6));
+
+		Mockito.when(tagRepository.findAllByOrderByNameAsc()).thenReturn(tags);
+
+		assertThat(tagService.getAllEntitiesAsc()).hasSize(6)
+				.containsExactly(tag_4, tag_5, tag_3, tag_1, tag_2, tag_6);
+	}
+
+	@Test
+	void test_getUsageCounts()
+	{
+		tag_1.setReferringTransactions(List.of());
+		tag_2.setReferringTransactions(List.of());
+		tag_3.setReferringTransactions(List.of());
+		tag_4.setReferringTransactions(List.of(new Transaction()));
+		tag_5.setReferringTransactions(List.of());
+		tag_6.setReferringTransactions(List.of());
+
+		List<Tag> tags = new ArrayList<>(List.of(tag_1, tag_2, tag_3, tag_4, tag_5, tag_6));
+		Mockito.when(tagRepository.findAllByOrderByNameAsc()).thenReturn(tags);
+
+		assertThat(tagService.getUsageCounts())
+				.hasSize(6)
+				.containsExactly(Map.entry("0", 1),
+						Map.entry("1", 0),
+						Map.entry("10", 0),
+						Map.entry("car stuff", 0),
+						Map.entry("fruits", 0),
+						Map.entry("Fruits", 0));
+	}
+}