package com.example.javtifulcomn.util;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class ResultTest {
@Test
void successCreation()
Result<Integer> r = Result.success(42);
assertTrue(r.isSuccess());
assertEquals(42, r.get());
assertNull(r.getError());
assertEquals("Success[42]", r.toString());
@Test
void failureCreation()
IllegalArgumentException ex = new IllegalArgumentException("bad");
Result<Integer> r = Result.failure(ex);
assertFalse(r.isSuccess());
assertThrows(IllegalStateException.class, r::get);
assertSame(ex, r.getError());
assertEquals("Failure[java.lang.IllegalArgumentException: bad]", r.toString());
@Test
void ofCapturesException()
Result<Integer> r = Result.of(() -> Integer.parseInt("not-a-number"));
assertFalse(r.isSuccess());
assertTrue(r.getError() instanceof NumberFormatException);
@Test
void mapTransformsSuccess()
Result<String> r = Result.success(10)
.map(i -> "value-" + i);
assertTrue(r.isSuccess());
assertEquals("value-10", r.get());
@Test
void mapPropagatesFailure()
Result<Integer> failure = Result.failure(new RuntimeException("boom"));
Result<String> r = failure.map(Object::toString);
assertTrue(r.isFailure());
assertEquals("boom", r.getError().getMessage());
@Test
void flatMapChainsSuccesses()
Result<Integer> r = Result.success(5)
.flatMap(i -> Result.success(i * 2))
.flatMap(i -> Result.success(i + 1));
assertTrue(r.isSuccess());
assertEquals(11, r.get());
@Test
void flatMapStopsOnFirstFailure()
Result<Integer> r = Result.success(5)
.flatMap(i -> Result.failure(new IllegalStateException("first")))
.flatMap(i -> Result.success(i * 2)); // never executed
assertTrue(r.isFailure());
assertEquals("first", r.getError().getMessage());
@Test
void getOrElseProvidesFallback()
Result<Integer> fail = Result.failure(new Exception("oops"));
assertEquals(99, fail.getOrElse(99));
@Test
void orElseThrowRethrowsRuntime()
Result<Integer> fail = Result.failure(new IllegalArgumentException("bad"));
IllegalArgumentException thrown = assertThrows(
IllegalArgumentException.class,
fail::orElseThrow);
assertEquals("bad", thrown.getMessage());
@Test
void orElseThrowWrapsChecked() {
Result<Integer> fail = Result.failure(new java.io.IOException("io"));
RuntimeException wrapped = assertThrows(
RuntimeException.class,
fail::orElseThrow);
assertTrue(wrapped.getCause() instanceof java.io.IOException);
Best Practices for Java Development
Java is one of the most popular programming languages in the world, widely used for developing large-scale applications, including Android apps, web applications, and enterprise software. To ensure that your Java code is efficient, readable, and maintainable, follow these best practices: javtifulcomn best
To minimize costs and ensure uptime against potential takedowns, these sites rarely host video files on local servers. Instead, they utilize: package com
Security is a critical aspect of Java development. Follow these best practices to secure your code: Best Practices for Java Development Java is one