Skip to content

antkorwin/common-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Different Java utility

Build Status Maven Central

This is a utility for simplifying the writing of tests.

Getting started

Dependency:

<dependency>
  <groupId>com.antkorwin</groupId>
  <artifactId>common-utils</artifactId>
  <version>1.0</version>
</dependency>

Guard

Guard helps you, when you need to check a some boolean condition and expect a throws Exception if condition is false.

Guard.check( 02 + 010 != 12, CruelJavaWorldException.class, "ooops");

Guard.check( object != null, WrongArgumentException.class, "Object must be not null");

Guard check

You can use this tool while writing a test, to make tests for a checking throw of the exception more readable.

@Test
public void guardWithoutErrorInfo() {

    GuardCheck.check(() -> { throw new IndexOutOfBoundsException(); },
                     IndexOutOfBoundsException.class);
}


@Test
public void testGuardCheck() {

    GuardCheck.check(() -> {
                         throw new NotFoundException(TestErrorInfo.TEST_ERROR);
                     },
                     NotFoundException.class,
                     TestErrorInfo.TEST_ERROR);
}

ErrorInfo

You can use it with an ErrorInfo to accumulate all you domain specific exceptions in an one enum-file:

@ErrorInfoUnique
public enum TestErrorInfo implements ErrorInfo {
    TEST_ERROR("error"),
    TEST_ERROR_ARG("wrong arg");

    private static final int BASE = 1000;
    private final String msg;

    TestErrorInfo(String msg) {
        this.msg = msg;
    }

    @Override
    public String getMessage() {
        return this.msg;
    }

    @Override
    public Integer getCode() {
        return BASE + ordinal();
    }
}

and sample of a test case :

Guard.check(a != b, TestErrorInfo.TEST_ERROR);

Collision Detector for ErrorInfos

In order to ensure the uniqueness of codes in a whole project, you can use enums which implements an ErrorInfo interface.

@Test
public void assertInPackage() {   
    // Act & assert
    ErrorInfoCollisionDetector.assertInPackage("com.demo.project");
}

Utils to work with Garbage Collector

GcUtils

You can use this tool to run the garbage collector and finalize unused memory in your junit tests.

@Test
public void testWeakAfterGC() {
    // Arrange
    String instance = new String("123");
    WeakReference<String> ref = new WeakReference<>(instance);

    // Act
    instance = null;
    GcUtils.fullFinalization();

    // Asserts
    Assertions.assertThat(ref.get()).isNull();
}

Simple memory LeakDetector

You can check a memory leak in your code for a particular object.

@Test
    public void testWithLeak() {
        // Arrange
        Foo foo = new Foo();
        Foo bar = foo;
        LeakDetector leakDetector = new LeakDetector(foo);

        // Act
        foo = null;

        // Asserts
        leakDetector.assertMemoryLeaksExist();
    }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages