diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/StandbyScheduleDtoTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/StandbyScheduleDtoTest.java
index 926ac64..4ead9b2 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/StandbyScheduleDtoTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/StandbyScheduleDtoTest.java
@@ -14,6 +14,8 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,6 +23,7 @@
 import org.eclipse.openk.sp.dto.planning.PlanHeaderDto;
 import org.eclipse.openk.sp.dto.planning.PlanRowsDto;
 import org.eclipse.openk.sp.dto.planning.StandbyScheduleFilterDto;
+import org.eclipse.openk.sp.util.DateHelper;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
@@ -47,6 +50,24 @@
 		dto.setPlanHeader(planHeader);
 		assertEquals(planHeader, dto.getPlanHeader());
 
+		StandbyGroupSelectionDto sbg = new StandbyGroupSelectionDto();
+		sbg.setTitle("title");
+		sbg.setId(1L);
+
+		List<StandbyGroupSelectionDto> list = new ArrayList<>();
+		list.add(sbg);
+
+		dto = new StandbyScheduleDto(DateHelper.getDate(2019, 02, 03), DateHelper.getDate(2019, 02, 05), list);
+
+		PlanRowsDto result = dto.getRow(DateHelper.getDate(2019, 02, 04));
+		assertNotNull(result);
+
+		result = dto.getRow(DateHelper.getDate(2019, 02, 06));
+		assertNull(result);
+
+		result = dto.getRow(null);
+		assertNull(result);
+
 	}
 
 	@Test
diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/UserSelectionDtoTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/UserSelectionDtoTest.java
index bf6b669..160d061 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/UserSelectionDtoTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/dto/UserSelectionDtoTest.java
@@ -79,5 +79,10 @@
 		u.setBusinessContactData(contactDataDto);
 		assertEquals(contactDataDto, u.getBusinessContactData());
 
+		OrganisationDto org = new OrganisationDto();
+		u.setOrganisation(org);
+
+		assertEquals(org, u.getOrganisation());
+
 	}
 }
