package com.hubspot.blazar.service;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.util.Set;
import org.jukito.JukitoRunner;
import org.jukito.UseModules;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
import com.hubspot.blazar.BlazarServiceTestBase;
import com.hubspot.blazar.BlazarServiceTestModule;
import com.hubspot.blazar.base.Dependency;
import com.hubspot.blazar.base.GitInfo;
import com.hubspot.blazar.base.Module;
import com.hubspot.blazar.data.service.BranchService;
import com.hubspot.blazar.data.service.DependenciesService;
import com.hubspot.blazar.data.service.ModuleDiscoveryService;
import com.hubspot.blazar.data.service.ModuleService;
import com.hubspot.blazar.discovery.ModuleDiscoveryHandler;
import com.hubspot.blazar.visitor.BuildEventDispatcher;
import io.dropwizard.db.ManagedDataSource;
@RunWith(JukitoRunner.class)
@UseModules({BlazarServiceTestModule.class})
public class DependencyVersionTest extends BlazarServiceTestBase {
private static final Logger LOG = LoggerFactory.getLogger(DependencyVersionTest.class);
@Inject
private BuildEventDispatcher buildEventDispatcher;
@Inject
private BranchService branchService;
@Inject
private ModuleDiscoveryHandler moduleDiscoveryHandler;
@Inject
private ModuleDiscoveryService moduleDiscoveryService;
@Inject
private ModuleService moduleService;
@Inject
private DependenciesService dependenciesService;
@Before
public void before(ManagedDataSource dataSource) throws Exception {
runSql(dataSource, "InterProjectData.sql");
}
@Test
public void itHasModuleVersion() throws InterruptedException, IOException {
// Run discovery on all branches and check that all modules have a version
for (GitInfo branch : branchService.getAll()) {
moduleDiscoveryHandler.updateModules(branch, true);
for (Module module : moduleService.getByBranch(branch.getId().get())) {
Set<Dependency> deps = dependenciesService.getDependencies(module.getId().get());
Set<Dependency> provided = dependenciesService.getProvided(module.getId().get());
for (Dependency d : deps) {
assertThat(d.getVersion()).isEqualTo("1.0.0");
}
for (Dependency p : provided) {
LOG.info("Checking version of {}", p);
assertThat(p.getVersion()).isEqualTo("1.0.0");
}
}
}
}
}