/**
* Copyright 2015-2016 Red Hat, Inc, and individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wildfly.swarm.fractions;
import java.io.IOException;
import java.util.Collection;
import java.util.Set;
import java.util.stream.Collectors;
import org.fest.assertions.Assertions;
import org.junit.Ignore;
import org.junit.Test;
import static org.fest.assertions.Assertions.assertThat;
/**
* @author Bob McWhirter
*/
public class FractionListTest {
@Test
public void testAllHaveLogging() {
FractionList list = FractionList.get();
Collection<FractionDescriptor> descriptors = list.getFractionDescriptors();
for (FractionDescriptor each : descriptors) {
if ( each.getArtifactId().equals( "container" ) ) {
// because container cannot have a dependency on logging.
continue;
}
assertThat(hasLogging(each))
.as(each.gav() + " has logging")
.isTrue();
}
}
private boolean hasLogging(FractionDescriptor desc) {
if ( desc.getGroupId().equals( "org.wildfly.swarm" ) && desc.getArtifactId().equals( "logging" ) ) {
return true;
}
return desc.getDependencies().stream()
.anyMatch(this::hasLogging);
}
@Test
public void testList() throws IOException {
FractionList list = FractionList.get();
Collection<FractionDescriptor> descriptors = list.getFractionDescriptors();
FractionDescriptor ee = descriptors.stream().filter(e -> e.getArtifactId().equals("ee")).findFirst().get();
Assertions.assertThat(list.getFractionDescriptor("org.wildfly.swarm", "ee")).isEqualTo(ee);
Assertions.assertThat(ee.getGroupId()).isEqualTo("org.wildfly.swarm");
Assertions.assertThat(ee.getArtifactId()).isEqualTo("ee");
Assertions.assertThat(ee.getDependencies()).hasSize(3);
Assertions.assertThat(ee.getDependencies().stream().filter(e -> e.getArtifactId().equals("container")).collect(Collectors.toList())).isNotEmpty();
Assertions.assertThat(ee.getDependencies().stream().filter(e -> e.getArtifactId().equals("naming")).collect(Collectors.toList())).isNotEmpty();
}
@Test
public void testMultipleGets() throws IOException {
FractionList l1 = FractionList.get();
FractionList l2 = FractionList.get();
FractionList l3 = FractionList.get();
assertThat(l1).isNotNull();
assertThat(l1).isSameAs(l2);
assertThat(l2).isSameAs(l3);
}
@Test
public void testGroupIdAndArtifactIdAndNameAndDescriptionAreNeverNull() throws Exception {
Collection<FractionDescriptor> descriptors = FractionList.get().getFractionDescriptors();
assertThat(descriptors).onProperty("groupId").isNotNull();
assertThat(descriptors).onProperty("artifactId").isNotNull();
assertThat(descriptors).onProperty("version").isNotNull();
assertThat(descriptors).onProperty("name").isNotNull();
assertThat(descriptors).onProperty("description").isNotNull();
}
@Test
public void testNameAndDescription() throws Exception {
FractionDescriptor cdi = FractionList.get().getFractionDescriptor("org.wildfly.swarm", "jaxrs");
Assertions.assertThat(cdi.getName()).isEqualTo("JAX-RS");
Assertions.assertThat(cdi.getDescription()).isEqualTo("RESTful Web Services with RESTEasy");
}
@Test
public void testEEFractionDependsOnNamingAndContainer() {
FractionDescriptor ee = FractionList.get().getFractionDescriptor("org.wildfly.swarm", "ee");
FractionDescriptor naming = FractionList.get().getFractionDescriptor("org.wildfly.swarm", "naming");
FractionDescriptor container = FractionList.get().getFractionDescriptor("org.wildfly.swarm", "container");
Set<FractionDescriptor> dependencies = ee.getDependencies();
assertThat(dependencies).contains(naming, container);
}
@Test
@Ignore
public void testArchaiusFractionShouldBeInternal() {
FractionDescriptor archaius = FractionList.get().getFractionDescriptor("org.wildfly.swarm", "archaius");
Assertions.assertThat(archaius.isInternal()).isTrue();
;
}
}