From 33e395d77a80f338fddd8c0dbc70ef1dfebfceea Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 20 Feb 2022 11:41:41 +0100
Subject: [PATCH] #655 - fallback to default account if placeholder account is
 selected

---
 .../budgetmaster/accounts/AccountService.java            | 2 +-
 .../budgetmaster/unit/AccountServiceTest.java            | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
index 713263235..86c903e1e 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
@@ -287,7 +287,7 @@ public class AccountService implements Resettable, AccessAllEntities<Account>, A
 	public Account getSelectedAccountOrDefaultAsFallback()
 	{
 		final Account selectedAccount = accountRepository.findByIsSelected(true);
-		if(selectedAccount != null)
+		if(selectedAccount != null && selectedAccount.getType() == AccountType.CUSTOM)
 		{
 			return selectedAccount;
 		}
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/AccountServiceTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/AccountServiceTest.java
index 77e97f0b0..9ee585404 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/AccountServiceTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/AccountServiceTest.java
@@ -312,4 +312,13 @@ class AccountServiceTest
 
 		assertThat(accountService.getSelectedAccountOrDefaultAsFallback()).isEqualTo(ACCOUNT_DEFAULT);
 	}
+
+	@Test
+	void test_getSelectedAccountOrDefaultAsFallback_fallbackIfPlaceholderAccountIsSelected()
+	{
+		Mockito.when(accountRepository.findByIsSelected(true)).thenReturn(ACCOUNT_PLACEHOLDER);
+		Mockito.when(accountRepository.findByIsDefault(true)).thenReturn(ACCOUNT_DEFAULT);
+
+		assertThat(accountService.getSelectedAccountOrDefaultAsFallback()).isEqualTo(ACCOUNT_DEFAULT);
+	}
 }
-- 
GitLab