001package edu.pdx.cs.joy.rmi; 002 003import com.google.common.collect.Iterables; 004import org.junit.jupiter.api.MethodOrderer.MethodName; 005import org.junit.jupiter.api.Test; 006import org.junit.jupiter.api.TestMethodOrder; 007 008import java.rmi.NotBoundException; 009import java.rmi.RemoteException; 010import java.util.Collection; 011 012import static org.hamcrest.CoreMatchers.containsString; 013import static org.hamcrest.CoreMatchers.equalTo; 014import static org.hamcrest.MatcherAssert.assertThat; 015 016@TestMethodOrder(MethodName.class) 017public class MovieDatabaseRmiMainTest extends MovieDatabaseRmiTestCase { 018 019 @Test 020 public void test1CreateMovie() throws RemoteException, NotBoundException { 021 String title = "Black Panther"; 022 int year = 2018; 023 024 MainMethodResult result = invokeMain(CreateMovie.class, RMI_HOST, String.valueOf(rmiPort), title, String.valueOf(year)); 025 assertThat(result.getTextWrittenToStandardOut(), containsString("Created movie")); 026 assertThat(result.getTextWrittenToStandardError(), equalTo("")); 027 028 MovieDatabase database = getMovieDatabase(); 029 Collection<Movie> movies = database.getMovies(); 030 assertThat(movies.size(), equalTo(1)); 031 Movie movie = Iterables.getOnlyElement(movies); 032 assertThat(movie.getTitle(), equalTo(title)); 033 assertThat(movie.getYear(), equalTo(year)); 034 } 035 036}