Skip to content
This repository has been archived by the owner on Mar 3, 2024. It is now read-only.

Тесты на windows #142

Open
osokindm opened this issue Oct 7, 2023 · 2 comments
Open

Тесты на windows #142

osokindm opened this issue Oct 7, 2023 · 2 comments
Assignees

Comments

@osokindm
Copy link
Contributor

osokindm commented Oct 7, 2023

Проблема неработающих тестов на windows (при выданных разрешениях) может быть связана со следующим:
Постпроцессинг тестов пытается удалить файл первого Dao, который еще используется вторым Dao, из-за чего вылетает исключение.
То есть второй объект Dao не создается через createDao(), в следствие чего не закрывается в конце теста.

Чтобы избежать такое поведение можно закрыть второй объект Dao, либо когда делаем reopen перезаписать поле делегата, а не создавать новый объект TestDao.

Пример с закрытием Dao (добавлен dao.close()):

 void variability(Dao<String, Entry<String>> dao) throws IOException {
        final Collection<Entry<String>> entries =
                List.of(
                        entry("key1", "value1"),
                        entry("key10", "value10"),
                        entry("key1000", "value1000"));
        entries.forEach(dao::upsert);
        dao.close();

        dao = DaoFactory.Factory.reopen(dao);
        for (final Entry<String> entry : entries) {
            assertSame(dao.get(entry.key()), entry);
        }
        dao.close();
    }

image

Второй вариант - измененный reopen:

public TestDao<Data, E> reopen() throws IOException {
        delegate = factory.createDao(config);
        return this;
    }
@incubos incubos self-assigned this Oct 12, 2023
@incubos
Copy link
Member

incubos commented Oct 12, 2023

Pull request пришлёте?

@osokindm
Copy link
Contributor Author

Pull request пришлёте?

прислал

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants