diff --git a/.gitignore b/.gitignore index d0907d0..344a142 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,6 @@ build/ .vscode/ ### Dev env ### -application.properties -aqua.jar +/application.properties +/aqua.jar /data/ diff --git a/pom.xml b/pom.xml index 87de046..c2440f0 100644 --- a/pom.xml +++ b/pom.xml @@ -84,11 +84,6 @@ mariadb-java-client runtime - - com.h2database - h2 - test - org.projectlombok diff --git a/src/test/java/icu/samnyan/aqua/AquaServerApplicationTests.java b/src/test/java/icu/samnyan/aqua/AquaServerApplicationTests.java index 2292033..28f1184 100644 --- a/src/test/java/icu/samnyan/aqua/AquaServerApplicationTests.java +++ b/src/test/java/icu/samnyan/aqua/AquaServerApplicationTests.java @@ -1,10 +1,10 @@ package icu.samnyan.aqua; import org.junit.jupiter.api.Test; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; -@TestPropertySource(locations = "classpath:application-test.properties") +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @SpringBootTest class AquaServerApplicationTests { diff --git a/src/test/java/icu/samnyan/aqua/FlywayTestConfig.java b/src/test/java/icu/samnyan/aqua/FlywayTestConfig.java new file mode 100644 index 0000000..c9376bc --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/FlywayTestConfig.java @@ -0,0 +1,20 @@ +package icu.samnyan.aqua; + +import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +@Configuration +public class FlywayTestConfig { + + @Bean + public FlywayMigrationStrategy clean() { + return flyway -> { + flyway.clean(); + flyway.migrate(); + }; + } +} diff --git a/src/test/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/ChuniRepositoryTest.java b/src/test/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/ChuniRepositoryTest.java new file mode 100644 index 0000000..0251f37 --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/sega/chunithm/dao/userdata/ChuniRepositoryTest.java @@ -0,0 +1,347 @@ +package icu.samnyan.aqua.sega.chunithm.dao.userdata; + +import icu.samnyan.aqua.sega.chunithm.model.userdata.*; +import icu.samnyan.aqua.sega.general.dao.CardRepository; +import icu.samnyan.aqua.sega.general.model.Card; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.time.LocalDateTime; +import java.util.List; + +import static icu.samnyan.aqua.util.CardHelper.getCard; +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class ChuniRepositoryTest { + + LocalDateTime now = LocalDateTime.now(); + + @Autowired + private CardRepository cardRepository; + + @Autowired + private UserActivityRepository userActivityRepository; + @Autowired + private UserCharacterRepository userCharacterRepository; + @Autowired + private UserChargeRepository userChargeRepository; + @Autowired + private UserCourseRepository userCourseRepository; + @Autowired + private UserDataExRepository userDataExRepository; + @Autowired + private UserDataRepository userDataRepository; + @Autowired + private UserDuelRepository userDuelRepository; + @Autowired + private UserGameOptionExRepository userGameOptionExRepository; + @Autowired + private UserGameOptionRepository userGameOptionRepository; + @Autowired + private UserGeneralDataRepository userGeneralDataRepository; + @Autowired + private UserItemRepository userItemRepository; + @Autowired + private UserMapRepository userMapRepository; + @Autowired + private UserMusicDetailRepository userMusicDetailRepository; + @Autowired + private UserPlaylogRepository userPlaylogRepository; + + @Test + void userData_SaveLoad() { + var c = cardRepository.save(getCard()); + userDataRepository.save(getUser(c)); + + var u = userDataRepository.findByCard_ExtId(114514L); + + assertThat(u).isPresent().hasValueSatisfying(i -> assertThat(i.getUserName()).isEqualTo("Hello")); + } + + @Test + void userActivity_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var aL = userActivityRepository.saveAll(List.of( + getActivity(u, 1), + getActivity(u, 2), + getActivity(u, 10010) + )); + + var aRL = userActivityRepository.findAllByUser_Card_ExtId(114514L); + + assertThat(aRL).hasSize(3); + } + + @Test + void userCharacter_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var cL = userCharacterRepository.saveAll(List.of( + getCharacter(u, 10011), + getCharacter(u, 10012), + getCharacter(u, 10013) + )); + + var cRL = userCharacterRepository.findByUser_Card_ExtId(114514L); + + assertThat(cRL).hasSize(3); + } + + @Test + void userCharge_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var cL = userChargeRepository.saveAll(List.of( + getCharge(u, 10011) + )); + + var cRL = userChargeRepository.findByUser_Card_ExtId(114514L); + + assertThat(cRL).hasSize(1); + } + + @Test + void userCourse_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var cL = userCourseRepository.saveAll(List.of( + getCourse(u, 10011), + getCourse(u, 10012) + )); + + var cRL = userCourseRepository.findByUser_Card_ExtId(114514L); + + assertThat(cRL).hasSize(2); + } + + @Test + void userDuel_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var dL = userDuelRepository.saveAll(List.of( + getDuel(u, 10011), + getDuel(u, 10012) + )); + + var dRL = userDuelRepository.findByUser_Card_ExtId(114514L); + + assertThat(dRL).hasSize(2); + } + + @Test + void userDataEx_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var d = userDataExRepository.save(getDataEx(u)); + + var dR = userDataExRepository.findByUser_Card_ExtId(114514L); + + assertThat(dR).isPresent(); + } + + @Test + void userGameOptionEx_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var g = userGameOptionExRepository.save(getGameOptionEx(u)); + + var gR = userGameOptionExRepository.findByUser_Card_ExtId(114514L); + + assertThat(gR).isPresent(); + } + + @Test + void userGameOption_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var g = userGameOptionRepository.save(getGameOption(u)); + + var gR = userGameOptionRepository.findByUser_Card_ExtId(114514L); + + assertThat(gR).isPresent(); + } + + @Test + void userGeneralData_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var g = userGeneralDataRepository.saveAll(List.of( + getGeneralData(u, "RATING", "VALUE1"), + getGeneralData(u, "RECENT_RATING", "VALUE2") + )); + + var gR = userGeneralDataRepository.findByUser_Card_ExtIdAndPropertyKey(114514L, "RATING"); + + assertThat(gR).isPresent().hasValueSatisfying(i -> assertThat(i.getPropertyValue()).isEqualTo("VALUE1")); + } + + @Test + void userItem_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var iL = userItemRepository.saveAll(List.of( + getUserItem(u, 1), + getUserItem(u, 2) + )); + + var iRL = userItemRepository.findAllByUser_Card_ExtId(114514L); + + assertThat(iRL).hasSize(2); + } + + @Test + void userMap_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var mL = userMapRepository.saveAll(List.of( + getUserMap(u, 1), + getUserMap(u, 2) + )); + + var mRL = userMapRepository.findAllByUser_Card_ExtId(114514L); + + assertThat(mRL).hasSize(2); + } + + @Test + void userMusicDetail_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var mL = userMusicDetailRepository.saveAll(List.of( + getUserMusicDetail(u, 1), + getUserMusicDetail(u, 2) + )); + + var mRL = userMusicDetailRepository.findByUser_Card_ExtId(114514L); + + assertThat(mRL).hasSize(2); + } + + @Test + void userPlaylog_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + var pL = userPlaylogRepository.saveAll(List.of( + getUserPlaylog(u, 1), + getUserPlaylog(u, 2) + )); + + var pRL = userPlaylogRepository.findByUser_Card_ExtId(114514L); + + assertThat(pRL).hasSize(2); + } + + private UserData getUser(Card card) { + return new UserData(1, + card, + "Hello", + now, + false, + "", + 10, + 0, + "", + 10, + 10, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + now, + 1, + false, + "SDBT", + "1.00.00", + "1.00.00", + now, + "SDBT", + "1.00.00", + "1.00.00", + now, + 1, + "", + "", + "", + "", + "" + ); + } + + private UserActivity getActivity(UserData u, Integer activityId) { + return new UserActivity(-1, u, 1, activityId, 0, 0, 0, 0, 0); + } + + private UserCharacter getCharacter(UserData u, Integer characterId) { + return new UserCharacter(-1, u, characterId, 1, 1, 1, 1, true, false, 0, 0); + } + + private UserCharge getCharge(UserData u, Integer chargeId) { + return new UserCharge(-1, u, chargeId, 1, now, now, 0, 0, now); + } + + private UserCourse getCourse(UserData u, Integer courseId) { + return new UserCourse(-1, u, courseId, 1, 1, 1, true, true, true, 1, 1, now, 1, 1, 1, 1, true); + } + + private UserDuel getDuel(UserData u, Integer duelId) { + return new UserDuel(-1, u, duelId, 1, 1, true, now, 1, 1, 1, 1); + } + + private UserDataEx getDataEx(UserData u) { + return new UserDataEx(-1, u, "", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, "", "", "", "", "", 0L, 0L, 0L, 0L, 0L); + } + + private UserGameOptionEx getGameOptionEx(UserData u) { + return new UserGameOptionEx(-1, u, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); + } + + private UserGameOption getGameOption(UserData u) { + return new UserGameOption(-1, u, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); + } + + private UserGeneralData getGeneralData(UserData u, String key, String value) { + return new UserGeneralData(-1, u, key, value); + } + + private UserItem getUserItem(UserData u, Integer itemId) { + return new UserItem(-1, u, 1, itemId, 1, true); + } + + private UserMap getUserMap(UserData u, Integer mapId) { + return new UserMap(-1, u, mapId, 1, true, 1, 1, 1, 1, 1, true); + } + + private UserMusicDetail getUserMusicDetail(UserData u, Integer musicId) { + return new UserMusicDetail(-1, u, musicId, 1, 1, 1, 1, 1, 1, 1, 1, true, true, true, 1, 1, 1, true); + } + + private UserPlaylog getUserPlaylog(UserData u, Integer musicId) { + return new UserPlaylog(-1, u, 0, 0, 0, now, now, musicId, 1, 1, 1, 1, 1, "", "", "", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true, true, 1, true, true, false, 1, 1, 1, true, 1, 1, "", false); + } +} \ No newline at end of file diff --git a/src/test/java/icu/samnyan/aqua/sega/diva/model/userdata/DivaRepositoryTest.java b/src/test/java/icu/samnyan/aqua/sega/diva/model/userdata/DivaRepositoryTest.java new file mode 100644 index 0000000..b672cfb --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/sega/diva/model/userdata/DivaRepositoryTest.java @@ -0,0 +1,248 @@ +package icu.samnyan.aqua.sega.diva.model.userdata; + +import icu.samnyan.aqua.sega.diva.dao.userdata.*; +import icu.samnyan.aqua.sega.diva.model.common.*; +import icu.samnyan.aqua.sega.general.dao.CardRepository; +import icu.samnyan.aqua.sega.general.model.Card; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.data.domain.PageRequest; + +import java.time.LocalDateTime; +import java.util.List; + +import static icu.samnyan.aqua.util.CardHelper.getCard; +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class DivaRepositoryTest { + + LocalDateTime now = LocalDateTime.now(); + + @Autowired + private CardRepository cardRepository; + + @Autowired + private GameSessionRepository gameSessionRepository; + @Autowired + private PlayerContestRepository playerContestRepository; + @Autowired + private PlayerCustomizeRepository playerCustomizeRepository; + @Autowired + private PlayerInventoryRepository playerInventoryRepository; + @Autowired + private PlayerModuleRepository playerModuleRepository; + @Autowired + private PlayerProfileRepository playerProfileRepository; + @Autowired + private PlayerPvCustomizeRepository playerPvCustomizeRepository; + @Autowired + private PlayerPvRecordRepository playerPvRecordRepository; + @Autowired + private PlayerScreenShotRepository playerScreenShotRepository; + @Autowired + private PlayLogRepository playLogRepository; + + @Test + void playerProfile_SaveLoad() { + var c = cardRepository.save(getCard()); + playerProfileRepository.save(getProfile(c)); + + var p = playerProfileRepository.findByPdId(c.getExtId().intValue()); + + assertThat(p).isPresent().hasValueSatisfying(v -> assertThat(v.getPdId()).isEqualTo(c.getExtId().intValue())); + } + + @Test + void gameSession_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + gameSessionRepository.save(getSession(p)); + + var s = gameSessionRepository.findByPdId(p); + + assertThat(s).isPresent(); + } + + @Test + void playerContest_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerContestRepository.saveAll(List.of( + getContest(p, 1), + getContest(p, 2) + )); + + var co = playerContestRepository.findByPdIdAndContestId(p, 1); + + assertThat(co).isPresent(); + } + + @Test + void playerCustomize_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerCustomizeRepository.saveAll(List.of( + getCustomize(p, 1), + getCustomize(p, 2), + getCustomize(p, 3) + )); + + var cL = playerCustomizeRepository.findByPdId(p); + + assertThat(cL).hasSize(3); + + var cPL = playerCustomizeRepository.findByPdId_PdId(p.getPdId(), PageRequest.of(0, 10)); + + assertThat(cPL).hasSize(3); + } + + @Test + void playerInventory_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerInventoryRepository.saveAll(List.of( + getInventory(p, "1", "1"), + getInventory(p, "2", "1"), + getInventory(p, "3", "1") + )); + + var io = playerInventoryRepository.findByPdIdAndTypeAndValue(p, "1", "2"); + + assertThat(io).isPresent(); + } + + @Test + void playerModule_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerModuleRepository.saveAll(List.of( + getModule(p, 1), + getModule(p, 2) + )); + + var mL = playerModuleRepository.findByPdId(p); + + assertThat(mL).hasSize(2); + + var mPL = playerModuleRepository.findByPdId_PdId(p.getPdId(), PageRequest.of(0, 10)); + + assertThat(mPL).hasSize(2); + } + + @Test + void playerPvCustomize_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerPvCustomizeRepository.saveAll(List.of( + getPvCustomize(p, 1), + getPvCustomize(p, 2) + )); + + var pL = playerPvCustomizeRepository.findByPdIdAndPvId(p, 1); + + assertThat(pL).isPresent(); + } + + @Test + void playerPvRecord_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerPvRecordRepository.saveAll(List.of( + getPvRecord(p, 1), + getPvRecord(p, 2), + getPvRecord(p, 3) + )); + + var rL = playerPvRecordRepository.findByPdId(p); + + assertThat(rL).hasSize(3); + } + + @Test + void playerScreenShot_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playerScreenShotRepository.saveAll(List.of( + getScreenShot(p, 1), + getScreenShot(p, 2), + getScreenShot(p, 3) + )); + + var rL = playerScreenShotRepository.findByPdId_PdId(p.getPdId()); + + assertThat(rL).hasSize(3); + } + + @Test + void playLog_SaveLoad() { + var c = cardRepository.save(getCard()); + var p = playerProfileRepository.save(getProfile(c)); + playLogRepository.saveAll(List.of( + getPlayLog(p, 1), + getPlayLog(p, 2) + )); + + var rL = playLogRepository.findByPdId_PdIdOrderByDateTimeDesc(p.getPdId(), PageRequest.of(0, 10)); + + assertThat(rL).hasSize(2); + + var rPL = playLogRepository.findByPdId_PdIdOrderByDateTimeDesc(p.getPdId(), PageRequest.of(0, 10)); + + assertThat(rPL).hasSize(2); + } + + private PlayerProfile getProfile(Card c) { + var p = new PlayerProfile(); + p.setPdId(c.getExtId().intValue()); + return p; + } + + private GameSession getSession(PlayerProfile p) { + return new GameSession(-1, 0, p, StartMode.START, now, now, 0, 0, 0, 0, 0, 0, 0, 0); + } + + private PlayerContest getContest(PlayerProfile p, Integer contestId) { + return new PlayerContest(-1, p, contestId, 1, ContestBorder.SILVER, 10000, 1, now); + } + + private PlayerCustomize getCustomize(PlayerProfile p, Integer customizeId) { + return new PlayerCustomize(-1, p, customizeId); + } + + private PlayerInventory getInventory(PlayerProfile p, String value, String type) { + return new PlayerInventory(-1L, p, value, type); + } + + private PlayerModule getModule(PlayerProfile p, Integer moduleId) { + return new PlayerModule(-1, p, moduleId); + } + + private PlayerPvCustomize getPvCustomize(PlayerProfile p, Integer pvId) { + var c = new PlayerPvCustomize(); + c.setPdId(p); + c.setPvId(pvId); + return c; + } + + private PlayerPvRecord getPvRecord(PlayerProfile p, Integer pvId) { + var r = new PlayerPvRecord(); + r.setPdId(p); + r.setPvId(pvId); + return r; + } + + private PlayerScreenShot getScreenShot(PlayerProfile p, Integer pvId) { + return new PlayerScreenShot(-1, p, pvId, "img.jpg", "0,0,0", "0,0,0,0,0"); + } + + private PlayLog getPlayLog(PlayerProfile p, Integer pvId) { + return new PlayLog(-1, p, pvId, Difficulty.EXTREME, Edition.EXTRA, 1, 10000, ChallengeKind.COMPLETED, 1, ClearResult.EXCELLENT, 100, 999, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "0,0,0", 0, 0, 0, "0", "0,0,0", 0, now); + } +} \ No newline at end of file diff --git a/src/test/java/icu/samnyan/aqua/sega/general/dao/CardRepositoryTest.java b/src/test/java/icu/samnyan/aqua/sega/general/dao/CardRepositoryTest.java new file mode 100644 index 0000000..de53b64 --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/sega/general/dao/CardRepositoryTest.java @@ -0,0 +1,31 @@ +package icu.samnyan.aqua.sega.general.dao; + +import icu.samnyan.aqua.sega.general.model.Card; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.time.LocalDateTime; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class CardRepositoryTest { + @Autowired + private CardRepository cardRepository; + + @Test + void findByExtId_Exists() { + cardRepository.save(new Card(1, 114514L, "01145141919810000000", LocalDateTime.now(), LocalDateTime.now())); + + var c = cardRepository.findByExtId(114514L); + + assertThat(c).isPresent(); + } + +} \ No newline at end of file diff --git a/src/test/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/OngekiRepositoryTest.java b/src/test/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/OngekiRepositoryTest.java new file mode 100644 index 0000000..964f7d1 --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/OngekiRepositoryTest.java @@ -0,0 +1,419 @@ +package icu.samnyan.aqua.sega.ongeki.dao.userdata; + +import icu.samnyan.aqua.sega.general.dao.CardRepository; +import icu.samnyan.aqua.sega.general.model.Card; +import icu.samnyan.aqua.sega.ongeki.model.userdata.*; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.util.List; + +import static icu.samnyan.aqua.util.CardHelper.getCard; +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class OngekiRepositoryTest { + + @Autowired + private CardRepository cardRepository; + + @Autowired + private UserActivityRepository userActivityRepository; + @Autowired + private UserBossRepository userBossRepository; + @Autowired + private UserCardRepository userCardRepository; + @Autowired + private UserChapterRepository userChapterRepository; + @Autowired + private UserCharacterRepository userCharacterRepository; + @Autowired + private UserDataRepository userDataRepository; + @Autowired + private UserDeckRepository userDeckRepository; + @Autowired + private UserEventPointRepository userEventPointRepository; + @Autowired + private UserGeneralDataRepository userGeneralDataRepository; + @Autowired + private UserItemRepository userItemRepository; + @Autowired + private UserLoginBonusRepository userLoginBonusRepository; + @Autowired + private UserMissionPointRepository userMissionPointRepository; + @Autowired + private UserMusicDetailRepository userMusicDetailRepository; + @Autowired + private UserMusicItemRepository userMusicItemRepository; + @Autowired + private UserOptionRepository userOptionRepository; + @Autowired + private UserPlaylogRepository userPlaylogRepository; + @Autowired + private UserScenarioRepository userScenarioRepository; + @Autowired + private UserStoryRepository userStoryRepository; + @Autowired + private UserTechCountRepository userTechCountRepository; + @Autowired + private UserTrainingRoomRepository userTrainingRoomRepository; + + @Test + void userData_SaveLoad() { + var c = cardRepository.save(getCard()); + userDataRepository.save(getUser(c)); + + var u = userDataRepository.findByCard_ExtId(c.getExtId()); + + assertThat(u).isPresent().hasValueSatisfying(i -> assertThat(i.getUserName()).isEqualTo("Hello")); + } + + @Test + void userActivity_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userActivityRepository.saveAll(List.of( + getActivity(u, 1), + getActivity(u, 2) + )); + + var aL = userActivityRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userBoss_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userBossRepository.saveAll(List.of( + getBoss(u, 1), + getBoss(u, 2) + )); + + var aL = userBossRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userCard_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userCardRepository.saveAll(List.of( + getUserCard(u, 1), + getUserCard(u, 2) + )); + + var aL = userCardRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userChapter_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userChapterRepository.saveAll(List.of( + getChapter(u, 1), + getChapter(u, 2) + )); + + var aL = userChapterRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userCharacter_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userCharacterRepository.saveAll(List.of( + getCharacter(u, 1), + getCharacter(u, 2) + )); + + var aL = userCharacterRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userDeck_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userDeckRepository.saveAll(List.of( + getDeck(u, 1), + getDeck(u, 2) + )); + + var aL = userDeckRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userEventPoint_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userEventPointRepository.saveAll(List.of( + getEventPoint(u, 1), + getEventPoint(u, 2) + )); + + var aL = userEventPointRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userGeneralData_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userGeneralDataRepository.saveAll(List.of( + getGeneralData(u, "RATING", "TEST1"), + getGeneralData(u, "RECENT_RATING", "TEST2") + )); + + var g = userGeneralDataRepository.findByUser_Card_ExtIdAndPropertyKey(c.getExtId(), "RATING"); + + assertThat(g).isPresent().hasValueSatisfying(v -> assertThat(v.getPropertyValue()).isEqualTo("TEST1")); + } + + @Test + void userItem_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userItemRepository.saveAll(List.of( + getItem(u, 1), + getItem(u, 2) + )); + + var aL = userItemRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userLoginBonus_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userLoginBonusRepository.saveAll(List.of( + getLoginBonus(u, 1), + getLoginBonus(u, 2) + )); + + var aL = userLoginBonusRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userMissionPoint_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userMissionPointRepository.saveAll(List.of( + getMissionPoint(u, 1), + getMissionPoint(u, 2) + )); + + var aL = userMissionPointRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userMusicDetail_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userMusicDetailRepository.saveAll(List.of( + getMusicDetail(u, 1), + getMusicDetail(u, 2) + )); + + var aL = userMusicDetailRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userMusicItem_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userMusicItemRepository.saveAll(List.of( + getMusicItem(u, 1), + getMusicItem(u, 2) + )); + + var aL = userMusicItemRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userOption_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userOptionRepository.save(getOption(u)); + + var aL = userOptionRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).isPresent(); + } + + @Test + void userPlaylog_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userPlaylogRepository.saveAll(List.of( + getPlaylog(u, 1), + getPlaylog(u, 2) + )); + + var aL = userPlaylogRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userScenario_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userScenarioRepository.saveAll(List.of( + getScenario(u, 1), + getScenario(u, 2) + )); + + var aL = userScenarioRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userStory_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userStoryRepository.saveAll(List.of( + getStory(u, 1), + getStory(u, 2) + )); + + var aL = userStoryRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userTechCount_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userTechCountRepository.saveAll(List.of( + getTechCount(u, 1), + getTechCount(u, 2) + )); + + var aL = userTechCountRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + @Test + void userTrainingRoom_SaveLoad() { + var c = cardRepository.save(getCard()); + var u = userDataRepository.save(getUser(c)); + userTrainingRoomRepository.saveAll(List.of( + getTrainingRoom(u, 1), + getTrainingRoom(u, 2) + )); + + var aL = userTrainingRoomRepository.findByUser_Card_ExtId(c.getExtId()); + + assertThat(aL).hasSize(2); + } + + private UserData getUser(Card c) { + return new UserData(-1, c, "Hello", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "2020", "SDDT", "1.00.00", "1.00.00", "2020", "SDDT", "1.00.00", "1.00.00", "", "2020", 0, "0", 0, "123", 0, "A000000", 0, 0); + } + + private UserActivity getActivity(UserData u, Integer activityId) { + return new UserActivity(-1, u, 1, activityId, 0, 0, 0, 0, 0); + } + + private UserBoss getBoss(UserData u, Integer musicId) { + return new UserBoss(-1, u, musicId, 10, false); + } + + private UserCard getUserCard(UserData u, Integer cardId) { + return new UserCard(-1, u, cardId, 10, 10, 10, 50, 10, 1, 1, false, "2020", "2020", 1, true, "2020"); + } + + private UserChapter getChapter(UserData u, Integer chapterId) { + return new UserChapter(-1, u, chapterId, 10, 1, 1, true, true, 1, 1); + } + + private UserCharacter getCharacter(UserData u, Integer characterId) { + return new UserCharacter(-1, u, characterId, 10, 1, 1, 1, "2020", false); + } + + private UserDeck getDeck(UserData u, Integer deckId) { + return new UserDeck(-1, u, deckId, 1, 1, 1); + } + + private UserEventPoint getEventPoint(UserData u, Integer eventId) { + return new UserEventPoint(-1, u, eventId, 1, false); + } + + private UserGeneralData getGeneralData(UserData u, String key, String value) { + return new UserGeneralData(-1, u, key, value); + } + + private UserItem getItem(UserData u, Integer itemId) { + return new UserItem(-1, u, 1, itemId, 1, true); + } + + private UserLoginBonus getLoginBonus(UserData u, Integer bonusId) { + return new UserLoginBonus(-1, u, bonusId, 1); + } + + private UserMissionPoint getMissionPoint(UserData u, Integer eventId) { + return new UserMissionPoint(-1, u, eventId, 1); + } + + private UserMusicDetail getMusicDetail(UserData u, Integer musicId) { + return new UserMusicDetail(-1, u, musicId, 1, 1, 100, 1, 100, 1, 100, 100, 100, true, true, true, false, 1, true); + } + + private UserMusicItem getMusicItem(UserData u, Integer musicId) { + return new UserMusicItem(-1, u, musicId, 1); + } + + private UserOption getOption(UserData u) { + return new UserOption(-1, u, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); + } + + private UserPlaylog getPlaylog(UserData u, Integer musicId) { + return new UserPlaylog(-1, u, 0, 0, "", "", "", musicId, 1, 1, 1, "", 1, 1, 1, 1, "", "", "", 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true, true, true, true, true, true, 0, 0); + } + + private UserScenario getScenario(UserData u, Integer scenarioId) { + return new UserScenario(-1, u, scenarioId, 1); + } + + private UserStory getStory(UserData u, Integer storyId) { + return new UserStory(-1, u, storyId, 0, 0, 0, 0, 0); + } + + private UserTechCount getTechCount(UserData u, Integer levelId) { + return new UserTechCount(-1, u, levelId, 1, 1); + } + + private UserTrainingRoom getTrainingRoom(UserData u, Integer roomId) { + return new UserTrainingRoom(-1, u, "", roomId, 1, ""); + } +} \ No newline at end of file diff --git a/src/test/java/icu/samnyan/aqua/util/CardHelper.java b/src/test/java/icu/samnyan/aqua/util/CardHelper.java new file mode 100644 index 0000000..d6e7188 --- /dev/null +++ b/src/test/java/icu/samnyan/aqua/util/CardHelper.java @@ -0,0 +1,17 @@ +package icu.samnyan.aqua.util; + +import icu.samnyan.aqua.sega.general.model.Card; + +import java.time.LocalDateTime; + +/** + * @author sam_nya (privateamusement@protonmail.com) + */ +public class CardHelper { + + public static Card getCard() { + var now = LocalDateTime.now(); + return new Card(1L, 114514L, "01145141919810000000", now, now); + } + +} diff --git a/src/test/resources/application-testMysql.properties b/src/test/resources/application-testMysql.properties new file mode 100644 index 0000000..6579bfb --- /dev/null +++ b/src/test/resources/application-testMysql.properties @@ -0,0 +1,16 @@ +# For testing +## AimeDb server setting +aimedb.server.enable=true +aimedb.server.port=22345 +allnet.server.host=localhost +allnet.server.port=80 +aimedb.server.address=127.0.0.1 +## Http Server Port +server.port=80 +spring.flyway.locations=classpath:db/migration/mysql +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.datasource.username=aqua_test +spring.datasource.password=aqua_test +spring.datasource.url=jdbc:mariadb://localhost:3306/aqua_test?useSSL=false +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB10Dialect +spring.jpa.hibernate.ddl-auto=validate diff --git a/src/test/resources/application-test.properties b/src/test/resources/application-testSqlite.properties similarity index 76% rename from src/test/resources/application-test.properties rename to src/test/resources/application-testSqlite.properties index f30f395..e5d7369 100644 --- a/src/test/resources/application-test.properties +++ b/src/test/resources/application-testSqlite.properties @@ -4,9 +4,9 @@ aimedb.server.enable=true aimedb.server.port=22345 allnet.server.host=localhost allnet.server.port=80 +aimedb.server.address=127.0.0.1 ## Http Server Port server.port=80 spring.datasource.driver-class-name=org.sqlite.JDBC spring.datasource.url=jdbc:sqlite:data/test.sqlite -spring.jpa.hibernate.ddl-auto=none -spring.flyway.locations=classpath:db/migration/sqlite \ No newline at end of file +spring.flyway.locations=classpath:db/migration/sqlite diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties new file mode 100644 index 0000000..9c270df --- /dev/null +++ b/src/test/resources/application.properties @@ -0,0 +1 @@ +spring.profiles.active=testMysql \ No newline at end of file