package io.rx_cache2.internal.migration;
import io.rx_cache2.internal.Record;
import io.rx_cache2.internal.common.BaseTest;
import java.util.Arrays;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
public class DeleteRecordMatchingClassNameTest extends BaseTest {
private io.rx_cache2.internal.migration.DeleteRecordMatchingClassName
deleteRecordMatchingClassNameUT;
@Override public void setUp() {
super.setUp();
deleteRecordMatchingClassNameUT = new io.rx_cache2.internal.migration.DeleteRecordMatchingClassName(disk, null);
}
@Test public void When_Class_Matches_Delete_Record_1() {
disk.saveRecord(Mock1.KEY, new Record(new Mock1(), true, 0l), false, null);
disk.saveRecord(Mock2.KEY, new Record(new Mock2(), true, 0l), false, null);
assertThat(disk.allKeys().size(), is(2));
deleteRecordMatchingClassNameUT.with(Arrays.<Class>asList(Mock1.class))
.react()
.test()
.awaitTerminalEvent();
assertThat(disk.allKeys().size(), is(1));
}
@Test public void When_Class_Matches_Delete_Record_2() {
disk.saveRecord(Mock1.KEY, new Record(new Mock1(), true, 0l), false, null);
disk.saveRecord(Mock2.KEY, new Record(new Mock2(), true, 0l), false, null);
assertThat(disk.allKeys().size(), is(2));
deleteRecordMatchingClassNameUT.with(Arrays.<Class>asList(Mock1.class, Mock2.class))
.react()
.test()
.awaitTerminalEvent();
assertThat(disk.allKeys().size(), is(0));
}
@Test public void When_Class_Matches_Delete_Record_1_List() {
disk.saveRecord(Mock1.KEY, new Record(Arrays.asList(new Mock1()), true, 0l), false, null);
disk.saveRecord(Mock2.KEY, new Record(Arrays.asList(new Mock2()), true, 0l), false, null);
assertThat(disk.allKeys().size(), is(2));
deleteRecordMatchingClassNameUT.with(Arrays.<Class>asList(Mock1.class))
.react()
.test()
.awaitTerminalEvent();
assertThat(disk.allKeys().size(), is(1));
}
@Test public void When_Class_Matches_Delete_Record_2_List() {
disk.saveRecord(Mock1.KEY, new Record(Arrays.asList(new Mock1()), true, 0l), false, null);
disk.saveRecord(Mock2.KEY, new Record(Arrays.asList(new Mock2()), true, 0l), false, null);
assertThat(disk.allKeys().size(), is(2));
deleteRecordMatchingClassNameUT.with(Arrays.<Class>asList(Mock1.class, Mock2.class))
.react()
.test()
.awaitTerminalEvent();
assertThat(disk.allKeys().size(), is(0));
}
public static class Mock1 {
private static final String KEY = "Mock1";
private final String s1;
public Mock1() {
s1 = null;
}
public Mock1(String s1) {
this.s1 = s1;
}
}
public static class Mock2 {
private static final String KEY = "Mock2";
private final String s1;
public Mock2() {
s1 = null;
}
public String getS1() {
return s1;
}
}
}