• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

database-rider / database-rider / #911

27 Oct 2024 07:44PM CUT coverage: 83.964% (+0.01%) from 83.951%
#911

push

web-flow
#610 fix support for parent classes hierarchy (#612)

* refs #610 fix annotation support for parent classes hierarchy

---------

Co-authored-by: Lee <hosing.lee@hsl-it-solutions.nl>

9 of 9 new or added lines in 1 file covered. (100.0%)

3084 of 3673 relevant lines covered (83.96%)

0.84 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

38.1
/rider-junit5/src/main/java/com/github/database/rider/junit5/integration/Micronaut.java
1
package com.github.database.rider.junit5.integration;
2

3
import com.github.database.rider.core.api.connection.ConnectionHolder;
4
import io.micronaut.context.ApplicationContext;
5
import io.micronaut.inject.qualifiers.Qualifiers;
6
import io.micronaut.test.extensions.junit5.MicronautJunit5Extension;
7
import org.junit.jupiter.api.extension.ExtensionContext;
8

9
import javax.sql.DataSource;
10
import java.util.Optional;
11

12
import static com.github.database.rider.core.util.ClassUtils.isOnClasspath;
13
import static com.github.database.rider.junit5.jdbc.ConnectionManager.getConfiguredDataSourceBeanName;
14
import static com.github.database.rider.junit5.jdbc.ConnectionManager.getConnectionHolder;
15

16
public class Micronaut {
×
17

18
    public static boolean isEnabled(ExtensionContext extensionContext) {
19
        return isExtensionEnabled(extensionContext) && getApplicationContext(extensionContext).isPresent();
1✔
20
    }
21

22
    public static ConnectionHolder getConnectionFromMicronautContext(ExtensionContext extensionContext, String executorId) {
23
        String configuredDataSourceBeanName = getConfiguredDataSourceBeanName(extensionContext);
×
24
        return getConnectionFromMicronautContext(extensionContext, executorId, configuredDataSourceBeanName);
×
25
    }
26

27
    public static ConnectionHolder getConnectionFromMicronautContext(ExtensionContext extensionContext, String executorId, String dataSourceBeanName) {
28
        DataSource dataSource = getDataSourceFromMicronautContext(extensionContext, dataSourceBeanName);
×
29
        return getConnectionHolder(executorId, dataSource);
×
30
    }
31

32
    private static boolean isExtensionEnabled(ExtensionContext extensionContext) {
33
        try {
34
            return isOnClasspath("io.micronaut.test.extensions.junit5.MicronautJunit5Extension");
1✔
35
        } catch (Exception e) {
×
36
            return false;
×
37
        }
38
    }
39

40
    private static Optional<ApplicationContext> getApplicationContext(ExtensionContext extensionContext) {
41
        ExtensionContext.Store micronautStore = extensionContext.getRoot().getStore(ExtensionContext.Namespace.create(MicronautJunit5Extension.class));
1✔
42
        if (micronautStore != null) {
1✔
43
            try {
44
                io.micronaut.context.ApplicationContext appContext = (io.micronaut.context.ApplicationContext) micronautStore.get(io.micronaut.context.ApplicationContext.class);
1✔
45
                if (appContext != null) {
1✔
46
                    return Optional.of(appContext);
×
47
                }
48
            } catch (ClassCastException ex) {
×
49
            }
1✔
50
        }
51
        return Optional.empty();
1✔
52
    }
53

54
    private static DataSource getDataSourceFromMicronautContext(ExtensionContext extensionContext, String beanName) {
55
        Optional<io.micronaut.context.ApplicationContext> context = getApplicationContext(extensionContext);
×
56
        if (context.isPresent()) {
×
57
            return beanName.isEmpty() ? context.get().getBean(DataSource.class) : context.get().getBean(DataSource.class, Qualifiers.byName(beanName));
×
58
        }
59
        throw new RuntimeException("Micronaut context is not available for test: " + extensionContext.getTestClass().get().getName());
×
60
    }
61

62
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc