001/* 002 * Copyright (C) 2022 - 2024, the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package io.github.ascopes.jct.assertions; 017 018import io.github.ascopes.jct.containers.OutputContainerGroup; 019import org.apiguardian.api.API; 020import org.apiguardian.api.API.Status; 021import org.jspecify.annotations.Nullable; 022 023/** 024 * Assertions for output container groups. 025 * 026 * @author Ashley Scopes 027 * @since 0.0.1 028 */ 029@API(since = "0.0.1", status = Status.STABLE) 030public final class OutputContainerGroupAssert 031 extends AbstractContainerGroupAssert<OutputContainerGroupAssert, OutputContainerGroup> { 032 033 /** 034 * Initialize the container group assertions. 035 * 036 * @param containerGroup the container group to assert upon. 037 * @throws AssertionError if the container group is null. 038 */ 039 public OutputContainerGroupAssert(@Nullable OutputContainerGroup containerGroup) { 040 super(containerGroup, OutputContainerGroupAssert.class); 041 } 042 043 /** 044 * Get assertions to perform on package-oriented paths within this location. 045 * 046 * @return the package-oriented assertions. 047 * @throws AssertionError if the container group is null. 048 */ 049 public PackageContainerGroupAssert packages() { 050 isNotNull(); 051 052 return new PackageContainerGroupAssert(actual); 053 } 054 055 /** 056 * Get assertions to perform on module-oriented paths within this location. 057 * 058 * @return the module-oriented assertions. 059 * @throws AssertionError if the container group is null. 060 */ 061 public ModuleContainerGroupAssert modules() { 062 isNotNull(); 063 064 return new ModuleContainerGroupAssert(actual); 065 } 066}