/******************************************************************************* * Copyright (c) 2016 Red Hat. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat - Initial Contribution *******************************************************************************/ package org.eclipse.linuxtools.internal.docker.ui.testutils; import static org.assertj.core.api.Assertions.fail; import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.Assertions; import org.eclipse.linuxtools.docker.core.IDockerImage; import org.eclipse.linuxtools.internal.docker.core.DockerImage.DockerImageQualifier; /** * Custom {@link Assertions} for the {@link IDockerImage} elements */ public class DockerImageAssertions extends AbstractAssert<DockerImageAssertions, IDockerImage> { public static DockerImageAssertions assertThat(final IDockerImage image) { return new DockerImageAssertions(image); } protected DockerImageAssertions(final IDockerImage actual) { super(actual, DockerImageAssertions.class); } public DockerImageAssertions is(final DockerImageQualifier qualifier) { switch (qualifier) { case DANGLING: assertThat(actual).isDanglingImage(); break; case INTERMEDIATE: assertThat(actual).isIntermediateImage(); break; case TOP_LEVEL: assertThat(actual).isTopLevelImage(); break; } return this; } public DockerImageAssertions isTopLevelImage() { isNotNull(); if (actual.isDangling() || actual.isIntermediateImage()) { fail("Expected images '" + actual.repo() + "' to be a top-level images but it was not."); } return this; } public DockerImageAssertions isIntermediateImage() { isNotNull(); if (!actual.isIntermediateImage()) { fail("Expected images '" + actual.repo() + "' to be an intermediate images but it was not."); } return this; } public DockerImageAssertions isDanglingImage() { isNotNull(); if (!actual.isDangling()) { fail("Expected images '" + actual.repo() + "' to be a danglingimage but it was not."); } return this; } }