Best Assertj code snippet using org.assertj.core.util.Preconditions.Preconditions
Source:Events.java  
...28import org.assertj.core.api.Condition;29import org.assertj.core.api.ListAssert;30import org.assertj.core.api.SoftAssertions;31import org.assertj.core.data.Index;32import org.junit.platform.commons.util.Preconditions;33import org.junit.platform.engine.TestExecutionResult;34import org.junit.platform.engine.TestExecutionResult.Status;35/**36 * {@code Events} is a facade that provides a fluent API for working with37 * {@linkplain Event events}.38 *39 * @since 1.440 */41@API(status = EXPERIMENTAL, since = "1.4")42public final class Events {43	private final List<Event> events;44	private final String category;45	Events(Stream<Event> events, String category) {46		this(Preconditions.notNull(events, "Event stream must not be null").collect(toList()), category);47	}48	Events(List<Event> events, String category) {49		Preconditions.notNull(events, "Event list must not be null");50		Preconditions.containsNoNullElements(events, "Event list must not contain null elements");51		this.events = Collections.unmodifiableList(events);52		this.category = category;53	}54	String getCategory() {55		return this.category;56	}57	// --- Accessors -----------------------------------------------------------58	/**59	 * Get the {@linkplain Event events} as a {@link List}.60	 *61	 * @return the list of events; never {@code null}62	 * @see #stream()63	 */64	public List<Event> list() {65		return this.events;66	}67	/**68	 * Get the {@linkplain Event events} as a {@link Stream}.69	 *70	 * @return the stream of events; never {@code null}71	 * @see #list()72	 */73	public Stream<Event> stream() {74		return this.events.stream();75	}76	/**77	 * Shortcut for {@code events.stream().map(mapper)}.78	 *79	 * @param mapper a {@code Function} to apply to each event; never {@code null}80	 * @return the mapped stream of events; never {@code null}81	 * @see #stream()82	 * @see Stream#map(Function)83	 */84	public <R> Stream<R> map(Function<? super Event, ? extends R> mapper) {85		Preconditions.notNull(mapper, "Mapping function must not be null");86		return stream().map(mapper);87	}88	/**89	 * Shortcut for {@code events.stream().filter(predicate)}.90	 *91	 * @param predicate a {@code Predicate} to apply to each event to decide if92	 * it should be included in the filtered stream; never {@code null}93	 * @return the filtered stream of events; never {@code null}94	 * @see #stream()95	 * @see Stream#filter(Predicate)96	 */97	public Stream<Event> filter(Predicate<? super Event> predicate) {98		Preconditions.notNull(predicate, "Filter predicate must not be null");99		return stream().filter(predicate);100	}101	/**102	 * Get the {@link Executions} for the current set of {@linkplain Event events}.103	 *104	 * @return an instance of {@code Executions} for the current set of events;105	 * never {@code null}106	 */107	public Executions executions() {108		return new Executions(this.events, this.category);109	}110	// --- Statistics ----------------------------------------------------------111	/**112	 * Get the number of {@linkplain Event events} contained in this {@code Events}113	 * object.114	 */115	public long count() {116		return this.events.size();117	}118	// --- Built-in Filters ----------------------------------------------------119	/**120	 * Get the skipped {@link Events} contained in this {@code Events} object.121	 *122	 * @return the filtered {@code Events}; never {@code null}123	 */124	public Events skipped() {125		return new Events(eventsByType(EventType.SKIPPED), this.category + " Skipped");126	}127	/**128	 * Get the started {@link Events} contained in this {@code Events} object.129	 *130	 * @return the filtered {@code Events}; never {@code null}131	 */132	public Events started() {133		return new Events(eventsByType(EventType.STARTED), this.category + " Started");134	}135	/**136	 * Get the finished {@link Events} contained in this {@code Events} object.137	 *138	 * @return the filtered {@code Events}; never {@code null}139	 */140	public Events finished() {141		return new Events(eventsByType(EventType.FINISHED), this.category + " Finished");142	}143	/**144	 * Get the aborted {@link Events} contained in this {@code Events} object.145	 *146	 * @return the filtered {@code Events}; never {@code null}147	 */148	public Events aborted() {149		return new Events(finishedEventsByStatus(Status.ABORTED), this.category + " Aborted");150	}151	/**152	 * Get the succeeded {@link Events} contained in this {@code Events} object.153	 *154	 * @return the filtered {@code Events}; never {@code null}155	 */156	public Events succeeded() {157		return new Events(finishedEventsByStatus(Status.SUCCESSFUL), this.category + " Successful");158	}159	/**160	 * Get the failed {@link Events} contained in this {@code Events} object.161	 *162	 * @return the filtered {@code Events}; never {@code null}163	 */164	public Events failed() {165		return new Events(finishedEventsByStatus(Status.FAILED), this.category + " Failed");166	}167	/**168	 * Get the reporting entry publication {@link Events} contained in this169	 * {@code Events} object.170	 *171	 * @return the filtered {@code Events}; never {@code null}172	 */173	public Events reportingEntryPublished() {174		return new Events(eventsByType(EventType.REPORTING_ENTRY_PUBLISHED),175			this.category + " Reporting Entry Published");176	}177	/**178	 * Get the dynamic registration {@link Events} contained in this179	 * {@code Events} object.180	 *181	 * @return the filtered {@code Events}; never {@code null}182	 */183	public Events dynamicallyRegistered() {184		return new Events(eventsByType(EventType.DYNAMIC_TEST_REGISTERED), this.category + " Dynamically Registered");185	}186	// --- Assertions ----------------------------------------------------------187	/**188	 * Assert statistics for the {@linkplain Event events} contained in this189	 * {@code Events} object.190	 *191	 * <h4>Example</h4>192	 *193	 * <p>{@code events.assertStatistics(stats -> stats.started(1).succeeded(1).failed(0));}194	 *195	 * @param statisticsConsumer a {@link Consumer} of {@link EventStatistics};196	 * never {@code null}197	 * @return this {@code Events} object for method chaining; never {@code null}198	 */199	public Events assertStatistics(Consumer<EventStatistics> statisticsConsumer) {200		Preconditions.notNull(statisticsConsumer, "Consumer must not be null");201		EventStatistics eventStatistics = new EventStatistics(this, this.category);202		statisticsConsumer.accept(eventStatistics);203		eventStatistics.assertAll();204		return this;205	}206	/**207	 * Assert that all {@linkplain Event events} contained in this {@code Events}208	 * object exactly match the provided conditions.209	 *210	 * <p>Conditions can be imported statically from {@link EventConditions}211	 * and {@link TestExecutionResultConditions}.212	 *213	 * <h4>Example</h4>214	 *215	 * <pre class="code">216	 * executionResults.tests().assertEventsMatchExactly(217	 *     event(test("exampleTestMethod"), started()),218	 *     event(test("exampleTestMethod"), finishedSuccessfully())219	 * );220	 * </pre>221	 *222	 * @param conditions the conditions to match against; never {@code null}223	 * @see EventConditions224	 * @see TestExecutionResultConditions225	 */226	@SafeVarargs227	public final void assertEventsMatchExactly(Condition<? super Event>... conditions) {228		Preconditions.notNull(conditions, "conditions must not be null");229		assertEventsMatchExactly(this.events, conditions);230	}231	/**232	 * Shortcut for {@code org.assertj.core.api.Assertions.assertThat(events.list())}.233	 *234	 * @return an instance of {@link ListAssert} for events; never {@code null}235	 * @see org.assertj.core.api.Assertions#assertThat(List)236	 * @see org.assertj.core.api.ListAssert237	 */238	public ListAssert<Event> assertThatEvents() {239		return org.assertj.core.api.Assertions.assertThat(list());240	}241	// --- Diagnostics ---------------------------------------------------------242	/**243	 * Print all events to {@link System#out}.244	 *245	 * @return this {@code Events} object for method chaining; never {@code null}246	 */247	public Events debug() {248		debug(System.out);249		return this;250	}251	/**252	 * Print all events to the supplied {@link OutputStream}.253	 *254	 * @param out the {@code OutputStream} to print to; never {@code null}255	 * @return this {@code Events} object for method chaining; never {@code null}256	 */257	public Events debug(OutputStream out) {258		Preconditions.notNull(out, "OutputStream must not be null");259		debug(new PrintWriter(out, true));260		return this;261	}262	/**263	 * Print all events to the supplied {@link Writer}.264	 *265	 * @param writer the {@code Writer} to print to; never {@code null}266	 * @return this {@code Events} object for method chaining; never {@code null}267	 */268	public Events debug(Writer writer) {269		Preconditions.notNull(writer, "Writer must not be null");270		debug(new PrintWriter(writer, true));271		return this;272	}273	private Events debug(PrintWriter printWriter) {274		printWriter.println(this.category + " Events:");275		this.events.forEach(event -> printWriter.printf("\t%s%n", event));276		return this;277	}278	// --- Internals -----------------------------------------------------------279	private Stream<Event> eventsByType(EventType type) {280		Preconditions.notNull(type, "EventType must not be null");281		return stream().filter(byType(type));282	}283	private Stream<Event> finishedEventsByStatus(Status status) {284		Preconditions.notNull(status, "Status must not be null");285		return eventsByType(EventType.FINISHED)//286				.filter(byPayload(TestExecutionResult.class, where(TestExecutionResult::getStatus, isEqual(status))));287	}288	@SafeVarargs289	private static void assertEventsMatchExactly(List<Event> events, Condition<? super Event>... conditions) {290		Assertions.assertThat(events).hasSize(conditions.length);291		SoftAssertions softly = new SoftAssertions();292		for (int i = 0; i < conditions.length; i++) {293			softly.assertThat(events).has(conditions[i], Index.atIndex(i));294		}295		softly.assertAll();296	}297}...Preconditions
Using AI Code Generation
1import org.assertj.core.util.Preconditions;2import org.junit.Test;3public class PreconditionsTest {4    public void testPreconditions() {5        Preconditions.checkArgument(2 > 1, "2 > 1");6        Preconditions.checkArgument(2 > 1, "2 > 1", "test");7        Preconditions.checkNotNull(2, "2");8        Preconditions.checkNotNull(2, "2", "test");9        Preconditions.checkState(2 > 1, "2 > 1");10        Preconditions.checkState(2 > 1, "2 > 1", "test");11        Preconditions.checkState(2 > 1, "2 > 1", "test", "test");12        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test");13        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test");14        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test", "test");15        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test", "test", "test");16        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test", "test", "test", "test");17        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test", "test", "test", "test", "test");18        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "test", "test", "test", "test", "test", "test");19        Preconditions.checkState(2 > 1, "2 > 1", "test", "test", "test", "Preconditions
Using AI Code Generation
1Preconditions.checkArgument(1 == 2, "This is a %s", "test");2Preconditions.checkArgument(1 == 2, "This is a %s", "test");3Preconditions.checkArgument(1 == 2, "This is a %s", "test");4Preconditions.checkArgument(1 == 2, "This is a %s", "test");5Preconditions.checkArgument(1 == 2, "This is a %s", "test");6Preconditions.checkArgument(1 == 2, "This is a %s", "test");7Preconditions.checkArgument(1 == 2, "This is a %s", "test");8Preconditions.checkArgument(1 == 2, "This is a %s", "test");9Preconditions.checkArgument(1 == 2, "This is a %s", "test");10Preconditions.checkArgument(1 == 2, "This is a %s", "test");11Preconditions.checkArgument(1 == 2, "This is a %s", "test");12Preconditions.checkArgument(1 == 2, "This is a %s", "test");13Preconditions.checkArgument(1 == 2, "This is a %s", "test");14Preconditions.checkArgument(1 == 2, "This is a %s", "test");15Preconditions.checkArgument(1 ==Preconditions
Using AI Code Generation
1import org.assertj.core.util.Preconditions;2public class AssertJPreconditions {3    public static void main(String[] args) {4        Preconditions.checkNotNull("Hello World");5    }6}7	at org.assertj.core.util.Preconditions.checkNotNull(Preconditions.java:24)8	at com.java2novice.AssertJPreconditions.main(AssertJPreconditions.java:8)9assertThatThrownBy() method10import org.junit.Test;11import static org.assertj.core.api.Assertions.*;12public class AssertJExceptionTest {13    public void testException() {14        assertThatThrownBy(() -> {15            throw new IllegalArgumentException("a message");16        }).hasMessage("a message");17    }18}19	at org.junit.Assert.assertEquals(Assert.java:115)20	at org.junit.Assert.assertEquals(Assert.java:144)21	at com.java2novice.AssertJExceptionTest.testException(AssertJExceptionTest.java:9)22assertThatCode() method23import org.junit.Test;24import static org.assertj.core.api.Assertions.*;25public class AssertJExceptionTest {26    public void testException() {27        assertThatCode(() -> {28            throw new IllegalArgumentException("a message");29        }).hasMessage("a message");30    }31}32	at org.junit.Assert.assertEquals(Assert.java:115)33	at org.junit.Assert.assertEquals(Assert.java:144)34	at com.java2novice.AssertJExceptionTest.testException(AssertJExceptionTest.java:9)35assertThatNoException() method36assertThatNoException() method is used to test the code without throwing any exception. This method is used to test thePreconditions
Using AI Code Generation
1public static <T> T checkNotNull(T argument) {2  return Preconditions.checkNotNull(argument, "The argument must not be null");3}4public static <T> T checkNotNull(T argument, String message) {5  return Preconditions.checkNotNull(argument, message);6}7public static <T> T checkNotNull(T argument, String message, Object... args) {8  return Preconditions.checkNotNull(argument, message, args);9}10public static <T> T checkNotNull(T argument, String message, Object arg) {11  return Preconditions.checkNotNull(argument, message, arg);12}13public static <T> T checkNotNull(T argument, String message, Object arg1, Object arg2) {14  return Preconditions.checkNotNull(argument, message, arg1, arg2);15}16public static <T> T checkNotNull(T argument, String message, Object arg1, Object arg2, Object arg3) {17  return Preconditions.checkNotNull(argument, message, arg1, arg2, arg3);18}19public static <T> T checkNotNull(T argument, String message, Object argPreconditions
Using AI Code Generation
1Preconditions.checkNotNull(obj, "obj should not be null");2Preconditions.checkNotNull(obj, "obj should not be null");3checkNotNull(Object obj, String message)4checkNotNull(Object obj)5checkNotNull(Object obj, String message, Object... args)6checkNotNull(Object obj, Supplier<String> messageSupplier)7checkArgument(boolean expression, String message, Object... args)8checkArgument(boolean expression, String message)9checkArgument(boolean expression, Supplier<String> messageSupplier)10checkState(boolean expression, String message, Object... args)11checkState(boolean expression, String message)12checkState(boolean expression, Supplier<String> messageSupplier)13checkElementIndex(int index, int size, String desc)14checkElementIndex(int index, int size)15checkPositionIndex(int index, int size, String desc)16checkPositionIndex(int index, int size)17checkPositionIndexes(int start, int end, int size)Preconditions
Using AI Code Generation
1import static org.assertj.core.util.Preconditions.checkNotNull;2import static org.assertj.core.util.Preconditions.checkArgument;3{4    public static void main(String[] args)5    {6        String name = "John";7        int age = 30;8        checkNotNull(name, "Name cannot be null");9        checkArgument(age > 0, "Invalid age");10        System.out.println("Name: " + name + ", Age: " + age);11    }12}13Related Posts: How to use AssertJ assertThatThrownBy() method in Java14How to use AssertJ assertThatCode() method in Java15How to use AssertJ assertThat() method in Java16How to use AssertJ assertThatNoException() method in Java17How to use AssertJ assertThatIllegalArgumentException() method in Java18How to use AssertJ assertThatNullPointerException() method in Java19How to use AssertJ assertThatIllegalStateException() method in Java20How to use AssertJ assertThatExceptionOfType() method in Java21How to use AssertJ assertThatNullPointerException() method in Java22How to use AssertJ assertThatIllegalArgumentException() method in Java23How to use AssertJ assertThatIllegalStateException() method in Java24How to use AssertJ assertThatExceptionOfType() method in Java25How to use AssertJ assertThat() method in Java26How to use AssertJ assertThatThrownBy() method in Java27How to use AssertJ assertThatCode() method in Java28How to use AssertJ assertThatNoException() method in Java29How to use AssertJ assertThatIllegalArgumentException() method in Java30How to use AssertJ assertThatNullPointerException() method in Java31How to use AssertJ assertThatIllegalStateException() method in Java32How to use AssertJ assertThatExceptionOfType() method in Java33How to use AssertJ assertThatNullPointerException() method in Java34How to use AssertJ assertThatIllegalArgumentException() method in Java35How to use AssertJ assertThatIllegalStateException() method inLearn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
