1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
package it.niedermann.nextcloud.deck.database;
import androidx.annotation.NonNull;
import java.util.Random;
import it.niedermann.nextcloud.deck.database.dao.AccountDao;
import it.niedermann.nextcloud.deck.database.dao.BoardDao;
import it.niedermann.nextcloud.deck.database.dao.CardDao;
import it.niedermann.nextcloud.deck.database.dao.StackDao;
import it.niedermann.nextcloud.deck.database.dao.UserDao;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Board;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.User;
public class DeckDatabaseTestUtil {
private static long currentLong = 1;
private DeckDatabaseTestUtil() {
// Util class
}
public static Account createAccount(@NonNull AccountDao dao) {
final var accountToCreate = new Account();
accountToCreate.setName(randomString(15) + " " + randomString(15));
accountToCreate.setUserName(randomString(10));
accountToCreate.setUrl("https://" + randomString(10) + ".example.com");
final long id = dao.insert(accountToCreate);
return dao.getAccountByIdDirectly(id);
}
public static User createUser(@NonNull UserDao dao, @NonNull Account account) {
final var userToCreate = new User();
userToCreate.setDisplayname(randomString(15) + " " + randomString(15));
userToCreate.setUid(randomString(10));
userToCreate.setAccountId(account.getId());
final long id = dao.insert(userToCreate);
return dao.getUserByLocalIdDirectly(id);
}
public static Board createBoard(@NonNull BoardDao dao, @NonNull Account account, @NonNull User owner) {
final var boardToCreate = new Board();
boardToCreate.setAccountId(account.getId());
boardToCreate.setTitle(randomString(10));
boardToCreate.setOwnerId(owner.getLocalId());
boardToCreate.setId(currentLong++);
long id = dao.insert(boardToCreate);
return dao.getBoardByLocalIdDirectly(id);
}
public static Stack createStack(@NonNull StackDao dao, @NonNull Account account, @NonNull Board board) {
final var stackToCreate = new Stack();
stackToCreate.setTitle(randomString(5));
stackToCreate.setAccountId(account.getId());
stackToCreate.setBoardId(board.getLocalId());
stackToCreate.setId(currentLong++);
long id = dao.insert(stackToCreate);
return dao.getStackByLocalIdDirectly(id);
}
public static Card createCard(@NonNull CardDao dao, @NonNull Account account, @NonNull Stack stack) {
return createCard(dao, account, stack, randomString(15), randomString(50));
}
public static Card createCard(@NonNull CardDao dao, @NonNull Account account, @NonNull Stack stack, @NonNull String title, @NonNull String description) {
final var cardToCreate = new Card();
cardToCreate.setAccountId(account.getId());
cardToCreate.setTitle(title);
cardToCreate.setDescription(description);
cardToCreate.setStackId(stack.getLocalId());
cardToCreate.setId(currentLong++);
long id = dao.insert(cardToCreate);
return dao.getCardByLocalIdDirectly(account.getId(), id);
}
private static String randomString(int length) {
final int leftLimit = 48; // numeral '0'
final int rightLimit = 122; // letter 'z'
return new Random().ints(leftLimit, rightLimit + 1)
.filter(i -> (i <= 57 || i >= 65) && (i <= 90 || i >= 97))
.limit(length)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
}
}
|