TypeAlias, Result, Maybe and others for Java
|
||
---|---|---|
.mvn/wrapper | ||
.travis-support@b8593e541b | ||
src | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG | ||
codesigning.asc.enc | ||
Jenkinsfile.groovy | ||
LICENSE.txt | ||
lombok.config | ||
mvnw | ||
mvnw.cmd | ||
pom.xml | ||
README.md |
Mon
TypeAlias for Java
Maven
<dependency>
<groupId>net.kemitix</groupId>
<artifactId>mon</artifactId>
<version>0.4.0</version>
</dependency>
Usage
TypeAlias
class Goal extends TypeAlias<String> {
private Goal(final String goal) {
super(goal);
}
public static Goal of(final String goal) {
return new Goal(goal);
}
}
Goal goal = Goal.of("goal");
void foo(final Goal goal) {
System.out.println("The goal is " + goal.getValue());
}
Maybe (Just & Nothing)
assertThat(Maybe.maybe(null)).isEqualTo(Maybe.nothing());
assertThat(Maybe.maybe(1)).isEqualTo(Maybe.just(1));
assertThat(Maybe.nothing()
.orElseGet(() -> 1)).isEqualTo(1);
assertThat(Maybe.just(1)
.orElseGet(() -> 2)).isEqualTo(1);
assertThat(Maybe.nothing()
.orElse(1)).isEqualTo(1);
assertThat(Maybe.just(1)
.orElse(2)).isEqualTo(1);
assertThat(Maybe.just(1)
.filter(v -> v > 2)).isEqualTo(Maybe.nothing());
assertThat(Maybe.just(3)
.filter(v -> v > 2)).isEqualTo(Maybe.just(3));
assertThat(Maybe.just(1)
.toOptional()).isEqualTo(Optional.of(1));
assertThat(Maybe.nothing()
.toOptional()).isEqualTo(Optional.empty());
assertThat(Maybe.fromOptional(Optional.of(1))).isEqualTo(Maybe.just(1));
assertThat(Maybe.fromOptional(Optional.empty())).isEqualTo(Maybe.nothing());
final AtomicInteger reference = new AtomicInteger(0);
assertThat(Maybe.just(1).peek(reference::set)).isEqualTo(Maybe.just(1));
assertThat(reference).hasValue(1);
assertThat(Maybe.nothing().peek(v -> reference.incrementAndGet())).isEqualTo(Maybe.nothing());
assertThat(reference).hasValue(1);
assertThatCode(() -> Maybe.just(1).orElseThrow(IllegalStateException::new))
.doesNotThrowAnyException();
assertThatThrownBy(() -> Maybe.nothing().orElseThrow(IllegalStateException::new))
.isInstanceOf(IllegalStateException.class);