Skip to content

Commit 1673c25

Browse files
committed
SEBSP-200 add more tests
1 parent 55dc1f4 commit 1673c25

File tree

1 file changed

+49
-7
lines changed

1 file changed

+49
-7
lines changed

src/test/java/ch/ethz/seb/sps/integrationtests/datalayer/batis/dao/ScreenshotS3FailTest.java

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010

1111
import static org.junit.Assert.*;
1212

13+
import java.io.ByteArrayInputStream;
14+
15+
import ch.ethz.seb.sps.domain.model.service.Session;
1316
import ch.ethz.seb.sps.integrationtests.ServiceTest_FULL_RDBMS;
17+
import ch.ethz.seb.sps.server.ServiceConfig;
1418
import ch.ethz.seb.sps.server.datalayer.batis.mapper.ScreenshotDataRecordMapper;
1519
import ch.ethz.seb.sps.server.datalayer.batis.model.ScreenshotDataRecord;
1620
import ch.ethz.seb.sps.server.datalayer.dao.impl.S3DAO;
@@ -19,24 +23,32 @@
1923
import org.apache.ibatis.session.SqlSessionFactory;
2024
import org.junit.Test;
2125
import org.mockito.Mock;
26+
import org.mockito.Mockito;
2227
import org.mybatis.spring.SqlSessionTemplate;
2328
import org.springframework.beans.factory.annotation.Autowired;
29+
import org.springframework.beans.factory.annotation.Qualifier;
30+
import org.springframework.scheduling.TaskScheduler;
31+
import org.springframework.transaction.PlatformTransactionManager;
32+
2433

2534
public class ScreenshotS3FailTest extends ServiceTest_FULL_RDBMS {
2635

27-
// @Autowired
28-
// private ScreenshotStore_S3 screenshotStore_S3;
29-
30-
// @Mock
31-
// private S3DAO s3DAO;
36+
37+
@Mock
38+
private S3DAO s3DAO;
3239

3340
@Autowired
3441
private SqlSessionFactory sqlSessionFactory;
3542
@Autowired
3643
private ScreenshotDataRecordMapper screenshotDataRecordMapper;
44+
@Autowired
45+
private PlatformTransactionManager transactionManager;
46+
@Autowired
47+
@Qualifier(value = ServiceConfig.SCREENSHOT_STORE_API_EXECUTOR)
48+
private TaskScheduler taskScheduler;
3749

3850
@Test
39-
public void testNoDuplicateScreenshotDataStoresOnS3Fail() {
51+
public void testNoDuplicateScreenshotDataStores() {
4052

4153
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(this.sqlSessionFactory, ExecutorType.BATCH);
4254

@@ -55,8 +67,38 @@ public void testNoDuplicateScreenshotDataStoresOnS3Fail() {
5567
}
5668

5769
Long num = screenshotDataRecordMapper.countByExample().build().execute();
70+
71+
assertEquals(1, (long) num);
72+
73+
}
74+
75+
@Test
76+
public void testNoDuplicateScreenshotDataStoresOnS3Fail() {
5877

59-
assertTrue(1 == num);
78+
Mockito.when(s3DAO.uploadItem(Mockito.any(), Mockito.any(),Mockito.any()))
79+
.thenThrow(new IllegalStateException("Test: No space left"));
80+
81+
ScreenshotStore_S3 screenshotStore_S3 = new ScreenshotStore_S3(
82+
sqlSessionFactory,
83+
transactionManager,
84+
s3DAO,
85+
taskScheduler,
86+
1000,
87+
false
88+
);
89+
90+
screenshotStore_S3.init();
6091

92+
screenshotStore_S3.storeScreenshot("session123", 100L, Session.ImageFormat.PNG, "metadata", new ByteArrayInputStream(new byte[] {1, 2}));
93+
94+
// wait some time
95+
try {
96+
Thread.sleep(2000);
97+
} catch (Exception e) {
98+
99+
}
100+
101+
Long num = screenshotDataRecordMapper.countByExample().build().execute();
102+
assertEquals(1, (long) num);
61103
}
62104
}

0 commit comments

Comments
 (0)