Welcome to mirror list, hosted at ThFree Co, Russian Federation.

DeckDatabaseTestUtil.java « database « deck « nextcloud « niedermann « it « java « test « src « app - github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 42e6f4d9dee83f1d3876d35930063f1aa6238203 (plain)
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();
    }
}