@startuml
    ' Copyright to this UML and generated images belongs to the author of the corresponding Java sources.

    ' This UML was generated by UMLDoclet (C) Copyright 2016-2024 Talsma ICT.
    ' UMLDoclet 2.2.1 is licensed under the Apache License, version 2.0
    ' and contains parts of PlantUML 1.2024.7 (ASL) Copyright 2009-2024, Arnaud Roques.

    !pragma layout smetana
    set separator ::

    package it.tidalwave.util.test {

        class MockTimeProvider [[MockTimeProvider.html]] {
            +currentInstant(): Instant
        }

        class BaseTestHelper [[BaseTestHelper.html]] {
            #test: Object
            +resourceFileFor(String): Path
            +readStringFromResource(String): String
            +testResourceFor(String): TestResource
        }

        class BaseTestHelper.TestResource [[BaseTestHelper.TestResource.html]] {
            +assertActualFileContentSameAsExpected(): void
            +writeToActualFile(String...): void
            +writeToActualFile(Iterable<String>): void
            +writeToActualFile(byte[]): void
            +readStringFromResource(): String
        }

        class MoreAnswers [[MoreAnswers.html]] {
            {static} +CALLS_DEFAULT_METHODS: Answer<?>
        }

        class TestLogger [[TestLogger.html]] {
            +onStart(ITestContext): void
            +onFinish(ITestContext): void
            +onConfigurationSkip(ITestResult): void
            +onConfigurationFailure(ITestResult): void
            +onTestStart(ITestResult): void
            +onTestFailure(ITestResult): void
            +onTestFailedButWithinSuccessPercentage(ITestResult): void
            +onTestSkipped(ITestResult): void
            +onTestSuccess(ITestResult): void
        }

        class FileComparisonUtils [[FileComparisonUtils.html]] {
            {static} +P_TABULAR_OUTPUT: String
            {static} +P_TABULAR_LIMIT: String
            {static} +assertSameContents(File, File): void
            {static} +assertSameContents(Path, Path): void
            {static} +assertSameContents(List<String>, List<String>): void
            {static} +checkSameContents(Path, Path): boolean
            {static} +stringToStrings(String): List<String>
            {static} +fileToStrings(Path): List<String>
            {static} +resourceToStrings(String): List<String>
            {static} +resourceToStrings(InputStream): List<String>
            {static} +commonPrefix(String, String): String
        }

        class SpringTestHelper [[SpringTestHelper.html]] {
            +SpringTestHelper(Object)
            +createSpringContext(String...): ApplicationContext
            +createSpringContext(Map<String, Object>, String...): ApplicationContext
            +createSpringContext(Consumer<? super GenericApplicationContext>, String...): ApplicationContext
            +createSpringContext(Map<String, Object>, Consumer<? super GenericApplicationContext>, String...): ApplicationContext
        }

    }

    package it.tidalwave.util {
        interface TimeProvider [[https://tidalwave.bitbucket.io/thesefoolishthings/modules/it-tidalwave-util/apidocs/it/tidalwave/util/TimeProvider.html?is-external=true]] {
            {static} +__INSTANCE: AtomicReference<TimeProvider>
            {abstract} +currentInstant(): Instant
            +get(): Instant
            +currentZonedDateTime(): ZonedDateTime
            +currentLocalDateTime(): LocalDateTime
            {static} +getInstance(): TimeProvider
        }
    }

    package org.testng {
        class TestListenerAdapter {
        }
    }

    it.tidalwave.util::TimeProvider <|.. it.tidalwave.util.test::MockTimeProvider
    it.tidalwave.util.test::BaseTestHelper +-- it.tidalwave.util.test::BaseTestHelper.TestResource
    org.testng::TestListenerAdapter <|-- it.tidalwave.util.test::TestLogger
    it.tidalwave.util.test::BaseTestHelper <|-- it.tidalwave.util.test::SpringTestHelper

    <style>
        footer {
            HyperLinkColor #8
            HyperLinkUnderlineThickness 0
        }
    </style>
    footer \n[[https://github.com/talsma-ict/umldoclet UMLDoclet 2.2.1]]
    ' Generated 2024-12-19T00:14:20.096199+01:00[Europe/Rome]
@enduml
