mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-02 19:13:44 +00:00
[android] Re-format java code by clang-format
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
@@ -1,13 +1,5 @@
|
||||
package app.organicmaps.widget.placepage.sections;
|
||||
|
||||
import app.organicmaps.sdk.editor.data.HoursMinutes;
|
||||
import app.organicmaps.sdk.editor.data.Timespan;
|
||||
import app.organicmaps.sdk.editor.data.Timetable;
|
||||
import app.organicmaps.widget.placepage.sections.PlaceOpeningHoursAdapter.WeekScheduleData;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -15,14 +7,22 @@ import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import app.organicmaps.sdk.editor.data.HoursMinutes;
|
||||
import app.organicmaps.sdk.editor.data.Timespan;
|
||||
import app.organicmaps.sdk.editor.data.Timetable;
|
||||
import app.organicmaps.widget.placepage.sections.PlaceOpeningHoursAdapter.WeekScheduleData;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class PlaceOpeningHoursAdapterTest {
|
||||
public class PlaceOpeningHoursAdapterTest
|
||||
{
|
||||
PlaceOpeningHoursAdapter adapter;
|
||||
Field mWeekScheduleField;
|
||||
|
||||
@@ -77,27 +77,21 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo-Fr 09:00-18:00; Sa 12:00-14:00"
|
||||
Timetable[] timetables = new Timetable[2];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2, 3, 4, 5, 6});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2, 3, 4, 5, 6});
|
||||
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(12,0, true),
|
||||
new HoursMinutes(14,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{7});
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(12, 0, true), new HoursMinutes(14, 0, true)),
|
||||
new Timespan[0], false, new int[] {7});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.SUNDAY);
|
||||
|
||||
/* Expected parsed schedule:
|
||||
* 0 - Su, closed
|
||||
* 1 - Mo-Fr, open
|
||||
* 2 - Sa, open
|
||||
* */
|
||||
* 0 - Su, closed
|
||||
* 1 - Mo-Fr, open
|
||||
* 2 - Sa, open
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(3, schedule.size());
|
||||
assertTrue(schedule.get(0).isClosed);
|
||||
@@ -112,17 +106,11 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo-Fr 09:00-18:00; Sa 12:00-14:00"
|
||||
Timetable[] timetables = new Timetable[2];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2, 3, 4, 5, 6});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2, 3, 4, 5, 6});
|
||||
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(12,0, true),
|
||||
new HoursMinutes(14,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{7});
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(12, 0, true), new HoursMinutes(14, 0, true)),
|
||||
new Timespan[0], false, new int[] {7});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.MONDAY);
|
||||
|
||||
@@ -132,12 +120,12 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 2 - Su, closed
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(3, schedule.size());
|
||||
assertFalse(schedule.get(0).isClosed); // Mo-Fr - open
|
||||
assertFalse(schedule.get(1).isClosed); // Sa - open
|
||||
assertTrue(schedule.get(2).isClosed); // Su - closed
|
||||
assertFalse(schedule.get(0).isClosed); // Mo-Fr - open
|
||||
assertFalse(schedule.get(1).isClosed); // Sa - open
|
||||
assertTrue(schedule.get(2).isClosed); // Su - closed
|
||||
assertEquals(schedule.get(2).startWeekDay, 1);
|
||||
assertEquals(schedule.get(2).endWeekDay, 1);
|
||||
}
|
||||
@@ -147,23 +135,14 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo 09:00-18:00; We 10:00-18:00; Fr 11:00-18:00"
|
||||
Timetable[] timetables = new Timetable[3];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2});
|
||||
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(10,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{4});
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(10, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {4});
|
||||
|
||||
timetables[2] = new Timetable(new Timespan(new HoursMinutes(11,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{6});
|
||||
timetables[2] = new Timetable(new Timespan(new HoursMinutes(11, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {6});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.MONDAY);
|
||||
|
||||
@@ -176,15 +155,15 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 5 - Sa-Su, closed
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(6, schedule.size());
|
||||
assertFalse(schedule.get(0).isClosed); // Mo - open
|
||||
assertTrue(schedule.get(1).isClosed); // Tu - closed
|
||||
assertTrue(schedule.get(1).isClosed); // Tu - closed
|
||||
assertFalse(schedule.get(2).isClosed); // We - open
|
||||
assertTrue(schedule.get(3).isClosed); // Th - closed
|
||||
assertTrue(schedule.get(3).isClosed); // Th - closed
|
||||
assertFalse(schedule.get(4).isClosed); // Fr - open
|
||||
assertTrue(schedule.get(5).isClosed); // Sa, Su - closed
|
||||
assertTrue(schedule.get(5).isClosed); // Sa, Su - closed
|
||||
assertEquals(schedule.get(5).startWeekDay, 7);
|
||||
assertEquals(schedule.get(5).endWeekDay, 1);
|
||||
}
|
||||
@@ -194,23 +173,14 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo 09:00-18:00; We 10:00-18:00; Fr 11:00-18:00"
|
||||
Timetable[] timetables = new Timetable[3];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2});
|
||||
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(10,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{4});
|
||||
timetables[1] = new Timetable(new Timespan(new HoursMinutes(10, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {4});
|
||||
|
||||
timetables[2] = new Timetable(new Timespan(new HoursMinutes(11,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{6});
|
||||
timetables[2] = new Timetable(new Timespan(new HoursMinutes(11, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {6});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.SUNDAY);
|
||||
|
||||
@@ -224,16 +194,16 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 6 - Sa, closed
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(7, schedule.size());
|
||||
assertTrue(schedule.get(0).isClosed); // Su - closed
|
||||
assertTrue(schedule.get(0).isClosed); // Su - closed
|
||||
assertFalse(schedule.get(1).isClosed); // Mo - open
|
||||
assertTrue(schedule.get(2).isClosed); // Tu - closed
|
||||
assertTrue(schedule.get(2).isClosed); // Tu - closed
|
||||
assertFalse(schedule.get(3).isClosed); // We - open
|
||||
assertTrue(schedule.get(4).isClosed); // Th - closed
|
||||
assertTrue(schedule.get(4).isClosed); // Th - closed
|
||||
assertFalse(schedule.get(5).isClosed); // Fr - open
|
||||
assertTrue(schedule.get(6).isClosed); // Sa - closed
|
||||
assertTrue(schedule.get(6).isClosed); // Sa - closed
|
||||
assertEquals(schedule.get(6).startWeekDay, 7);
|
||||
assertEquals(schedule.get(6).endWeekDay, 7);
|
||||
}
|
||||
@@ -243,11 +213,8 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo 09:00-18:00; We 10:00-18:00; Fr 11:00-18:00"
|
||||
Timetable[] timetables = new Timetable[1];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2, 4, 6});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2, 4, 6});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.MONDAY);
|
||||
|
||||
@@ -260,15 +227,15 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 5 - Sa-Su, closed
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(6, schedule.size());
|
||||
assertFalse(schedule.get(0).isClosed); // Mo - open
|
||||
assertTrue(schedule.get(1).isClosed); // Tu - closed
|
||||
assertTrue(schedule.get(1).isClosed); // Tu - closed
|
||||
assertFalse(schedule.get(2).isClosed); // We - open
|
||||
assertTrue(schedule.get(3).isClosed); // Th - closed
|
||||
assertTrue(schedule.get(3).isClosed); // Th - closed
|
||||
assertFalse(schedule.get(4).isClosed); // Fr - open
|
||||
assertTrue(schedule.get(5).isClosed); // Sa, Su - closed
|
||||
assertTrue(schedule.get(5).isClosed); // Sa, Su - closed
|
||||
assertEquals(schedule.get(5).startWeekDay, 7);
|
||||
assertEquals(schedule.get(5).endWeekDay, 1);
|
||||
}
|
||||
@@ -278,11 +245,8 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Mo 09:00-18:00; We 10:00-18:00; Fr 11:00-18:00"
|
||||
Timetable[] timetables = new Timetable[1];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(18,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{2, 4, 6});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(18, 0, true)),
|
||||
new Timespan[0], false, new int[] {2, 4, 6});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.SUNDAY);
|
||||
|
||||
@@ -296,16 +260,16 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 6 - Sa, closed
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(7, schedule.size());
|
||||
assertTrue(schedule.get(0).isClosed); // Su - closed
|
||||
assertTrue(schedule.get(0).isClosed); // Su - closed
|
||||
assertFalse(schedule.get(1).isClosed); // Mo - open
|
||||
assertTrue(schedule.get(2).isClosed); // Tu - closed
|
||||
assertTrue(schedule.get(2).isClosed); // Tu - closed
|
||||
assertFalse(schedule.get(3).isClosed); // We - open
|
||||
assertTrue(schedule.get(4).isClosed); // Th - closed
|
||||
assertTrue(schedule.get(4).isClosed); // Th - closed
|
||||
assertFalse(schedule.get(5).isClosed); // Fr - open
|
||||
assertTrue(schedule.get(6).isClosed); // Sa - closed
|
||||
assertTrue(schedule.get(6).isClosed); // Sa - closed
|
||||
assertEquals(schedule.get(6).startWeekDay, 7);
|
||||
assertEquals(schedule.get(6).endWeekDay, 7);
|
||||
}
|
||||
@@ -315,11 +279,8 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Sa-Su 11:00-24:00"
|
||||
Timetable[] timetables = new Timetable[1];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(24,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{1, 7});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(24, 0, true)),
|
||||
new Timespan[0], false, new int[] {1, 7});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.SUNDAY);
|
||||
|
||||
@@ -329,11 +290,11 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 2 - Sa, open
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(3, schedule.size());
|
||||
assertFalse(schedule.get(0).isClosed); // Su - open
|
||||
assertTrue(schedule.get(1).isClosed); // Mo-Fr - closed
|
||||
assertTrue(schedule.get(1).isClosed); // Mo-Fr - closed
|
||||
assertFalse(schedule.get(2).isClosed); // Sa - open
|
||||
assertEquals(schedule.get(0).startWeekDay, 1);
|
||||
assertEquals(schedule.get(0).endWeekDay, 1);
|
||||
@@ -348,11 +309,8 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
{
|
||||
// opening_hours = "Sa-Su 11:00-24:00"
|
||||
Timetable[] timetables = new Timetable[1];
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9,0, true),
|
||||
new HoursMinutes(24,0, true)),
|
||||
new Timespan[0],
|
||||
false,
|
||||
new int[]{1, 7});
|
||||
timetables[0] = new Timetable(new Timespan(new HoursMinutes(9, 0, true), new HoursMinutes(24, 0, true)),
|
||||
new Timespan[0], false, new int[] {1, 7});
|
||||
|
||||
adapter.setTimetables(timetables, Calendar.MONDAY);
|
||||
|
||||
@@ -361,10 +319,10 @@ public class PlaceOpeningHoursAdapterTest {
|
||||
* 1 - Sa-Su, open
|
||||
* */
|
||||
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>)mWeekScheduleField.get(adapter);
|
||||
List<WeekScheduleData> schedule = (List<WeekScheduleData>) mWeekScheduleField.get(adapter);
|
||||
assertNotNull(schedule);
|
||||
assertEquals(2, schedule.size());
|
||||
assertTrue(schedule.get(0).isClosed); // Mo-Fr - closed
|
||||
assertTrue(schedule.get(0).isClosed); // Mo-Fr - closed
|
||||
assertFalse(schedule.get(1).isClosed); // Sa-Su - open
|
||||
assertEquals(schedule.get(1).startWeekDay, 7);
|
||||
assertEquals(schedule.get(1).endWeekDay, 1);
|
||||
|
||||
@@ -4,310 +4,339 @@
|
||||
|
||||
package org.chromium.base;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/** Tests for (@link ObserverList}. */
|
||||
public class ObserverListTest {
|
||||
interface Observer {
|
||||
void observe(int x);
|
||||
public class ObserverListTest
|
||||
{
|
||||
interface Observer
|
||||
{
|
||||
void observe(int x);
|
||||
}
|
||||
|
||||
private static class Foo implements Observer
|
||||
{
|
||||
private final int mScalar;
|
||||
private int mTotal;
|
||||
|
||||
Foo(int scalar)
|
||||
{
|
||||
mScalar = scalar;
|
||||
}
|
||||
|
||||
private static class Foo implements Observer {
|
||||
private final int mScalar;
|
||||
private int mTotal;
|
||||
@Override
|
||||
public void observe(int x)
|
||||
{
|
||||
mTotal += x * mScalar;
|
||||
}
|
||||
}
|
||||
|
||||
Foo(int scalar) {
|
||||
mScalar = scalar;
|
||||
}
|
||||
/** An observer which add a given Observer object to the list when observe is called. */
|
||||
private static class FooAdder implements Observer
|
||||
{
|
||||
private final ObserverList<Observer> mList;
|
||||
private final Observer mLucky;
|
||||
|
||||
@Override
|
||||
public void observe(int x) {
|
||||
mTotal += x * mScalar;
|
||||
}
|
||||
FooAdder(ObserverList<Observer> list, Observer oblivious)
|
||||
{
|
||||
mList = list;
|
||||
mLucky = oblivious;
|
||||
}
|
||||
|
||||
/** An observer which add a given Observer object to the list when observe is called. */
|
||||
private static class FooAdder implements Observer {
|
||||
private final ObserverList<Observer> mList;
|
||||
private final Observer mLucky;
|
||||
@Override
|
||||
public void observe(int x)
|
||||
{
|
||||
mList.addObserver(mLucky);
|
||||
}
|
||||
}
|
||||
|
||||
FooAdder(ObserverList<Observer> list, Observer oblivious) {
|
||||
mList = list;
|
||||
mLucky = oblivious;
|
||||
}
|
||||
/** An observer which removes a given Observer object from the list when observe is called. */
|
||||
private static class FooRemover implements Observer
|
||||
{
|
||||
private final ObserverList<Observer> mList;
|
||||
private final Observer mDoomed;
|
||||
|
||||
@Override
|
||||
public void observe(int x) {
|
||||
mList.addObserver(mLucky);
|
||||
}
|
||||
FooRemover(ObserverList<Observer> list, Observer innocent)
|
||||
{
|
||||
mList = list;
|
||||
mDoomed = innocent;
|
||||
}
|
||||
|
||||
/** An observer which removes a given Observer object from the list when observe is called. */
|
||||
private static class FooRemover implements Observer {
|
||||
private final ObserverList<Observer> mList;
|
||||
private final Observer mDoomed;
|
||||
|
||||
FooRemover(ObserverList<Observer> list, Observer innocent) {
|
||||
mList = list;
|
||||
mDoomed = innocent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void observe(int x) {
|
||||
mList.removeObserver(mDoomed);
|
||||
}
|
||||
@Override
|
||||
public void observe(int x)
|
||||
{
|
||||
mList.removeObserver(mDoomed);
|
||||
}
|
||||
}
|
||||
|
||||
private static <T> int getSizeOfIterable(Iterable<T> iterable) {
|
||||
if (iterable instanceof Collection<?>) return ((Collection<?>) iterable).size();
|
||||
int num = 0;
|
||||
for (T el : iterable) num++;
|
||||
return num;
|
||||
private static <T> int getSizeOfIterable(Iterable<T> iterable)
|
||||
{
|
||||
if (iterable instanceof Collection<?>)
|
||||
return ((Collection<?>) iterable).size();
|
||||
int num = 0;
|
||||
for (T el : iterable)
|
||||
num++;
|
||||
return num;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveWhileIteration()
|
||||
{
|
||||
ObserverList<Observer> observerList = new ObserverList<Observer>();
|
||||
Foo a = new Foo(1);
|
||||
Foo b = new Foo(-1);
|
||||
Foo c = new Foo(1);
|
||||
Foo d = new Foo(-1);
|
||||
Foo e = new Foo(-1);
|
||||
FooRemover evil = new FooRemover(observerList, c);
|
||||
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
|
||||
for (Observer obs : observerList)
|
||||
obs.observe(10);
|
||||
|
||||
// Removing an observer not in the list should do nothing.
|
||||
observerList.removeObserver(e);
|
||||
|
||||
observerList.addObserver(evil);
|
||||
observerList.addObserver(c);
|
||||
observerList.addObserver(d);
|
||||
|
||||
for (Observer obs : observerList)
|
||||
obs.observe(10);
|
||||
|
||||
// observe should be called twice on a.
|
||||
Assert.assertEquals(20, a.mTotal);
|
||||
// observe should be called twice on b.
|
||||
Assert.assertEquals(-20, b.mTotal);
|
||||
// evil removed c from the observerList before it got any callbacks.
|
||||
Assert.assertEquals(0, c.mTotal);
|
||||
// observe should be called once on d.
|
||||
Assert.assertEquals(-10, d.mTotal);
|
||||
// e was never added to the list, observe should not be called.
|
||||
Assert.assertEquals(0, e.mTotal);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddWhileIteration()
|
||||
{
|
||||
ObserverList<Observer> observerList = new ObserverList<Observer>();
|
||||
Foo a = new Foo(1);
|
||||
Foo b = new Foo(-1);
|
||||
Foo c = new Foo(1);
|
||||
FooAdder evil = new FooAdder(observerList, c);
|
||||
|
||||
observerList.addObserver(evil);
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
|
||||
for (Observer obs : observerList)
|
||||
obs.observe(10);
|
||||
|
||||
Assert.assertTrue(observerList.hasObserver(c));
|
||||
Assert.assertEquals(10, a.mTotal);
|
||||
Assert.assertEquals(-10, b.mTotal);
|
||||
Assert.assertEquals(0, c.mTotal);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIterator()
|
||||
{
|
||||
ObserverList<Integer> observerList = new ObserverList<Integer>();
|
||||
observerList.addObserver(5);
|
||||
observerList.addObserver(10);
|
||||
observerList.addObserver(15);
|
||||
Assert.assertEquals(3, getSizeOfIterable(observerList));
|
||||
|
||||
observerList.removeObserver(10);
|
||||
Assert.assertEquals(2, getSizeOfIterable(observerList));
|
||||
|
||||
Iterator<Integer> it = observerList.iterator();
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertFalse(it.hasNext());
|
||||
|
||||
boolean removeExceptionThrown = false;
|
||||
try
|
||||
{
|
||||
it.remove();
|
||||
Assert.fail("Expecting UnsupportedOperationException to be thrown here.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveWhileIteration() {
|
||||
ObserverList<Observer> observerList = new ObserverList<Observer>();
|
||||
Foo a = new Foo(1);
|
||||
Foo b = new Foo(-1);
|
||||
Foo c = new Foo(1);
|
||||
Foo d = new Foo(-1);
|
||||
Foo e = new Foo(-1);
|
||||
FooRemover evil = new FooRemover(observerList, c);
|
||||
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
|
||||
for (Observer obs : observerList) obs.observe(10);
|
||||
|
||||
// Removing an observer not in the list should do nothing.
|
||||
observerList.removeObserver(e);
|
||||
|
||||
observerList.addObserver(evil);
|
||||
observerList.addObserver(c);
|
||||
observerList.addObserver(d);
|
||||
|
||||
for (Observer obs : observerList) obs.observe(10);
|
||||
|
||||
// observe should be called twice on a.
|
||||
Assert.assertEquals(20, a.mTotal);
|
||||
// observe should be called twice on b.
|
||||
Assert.assertEquals(-20, b.mTotal);
|
||||
// evil removed c from the observerList before it got any callbacks.
|
||||
Assert.assertEquals(0, c.mTotal);
|
||||
// observe should be called once on d.
|
||||
Assert.assertEquals(-10, d.mTotal);
|
||||
// e was never added to the list, observe should not be called.
|
||||
Assert.assertEquals(0, e.mTotal);
|
||||
catch (UnsupportedOperationException e)
|
||||
{
|
||||
removeExceptionThrown = true;
|
||||
}
|
||||
Assert.assertTrue(removeExceptionThrown);
|
||||
Assert.assertEquals(2, getSizeOfIterable(observerList));
|
||||
|
||||
@Test
|
||||
public void testAddWhileIteration() {
|
||||
ObserverList<Observer> observerList = new ObserverList<Observer>();
|
||||
Foo a = new Foo(1);
|
||||
Foo b = new Foo(-1);
|
||||
Foo c = new Foo(1);
|
||||
FooAdder evil = new FooAdder(observerList, c);
|
||||
|
||||
observerList.addObserver(evil);
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
|
||||
for (Observer obs : observerList) obs.observe(10);
|
||||
|
||||
Assert.assertTrue(observerList.hasObserver(c));
|
||||
Assert.assertEquals(10, a.mTotal);
|
||||
Assert.assertEquals(-10, b.mTotal);
|
||||
Assert.assertEquals(0, c.mTotal);
|
||||
boolean noElementExceptionThrown = false;
|
||||
try
|
||||
{
|
||||
it.next();
|
||||
Assert.fail("Expecting NoSuchElementException to be thrown here.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIterator() {
|
||||
ObserverList<Integer> observerList = new ObserverList<Integer>();
|
||||
observerList.addObserver(5);
|
||||
observerList.addObserver(10);
|
||||
observerList.addObserver(15);
|
||||
Assert.assertEquals(3, getSizeOfIterable(observerList));
|
||||
|
||||
observerList.removeObserver(10);
|
||||
Assert.assertEquals(2, getSizeOfIterable(observerList));
|
||||
|
||||
Iterator<Integer> it = observerList.iterator();
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertFalse(it.hasNext());
|
||||
|
||||
boolean removeExceptionThrown = false;
|
||||
try {
|
||||
it.remove();
|
||||
Assert.fail("Expecting UnsupportedOperationException to be thrown here.");
|
||||
} catch (UnsupportedOperationException e) {
|
||||
removeExceptionThrown = true;
|
||||
}
|
||||
Assert.assertTrue(removeExceptionThrown);
|
||||
Assert.assertEquals(2, getSizeOfIterable(observerList));
|
||||
|
||||
boolean noElementExceptionThrown = false;
|
||||
try {
|
||||
it.next();
|
||||
Assert.fail("Expecting NoSuchElementException to be thrown here.");
|
||||
} catch (NoSuchElementException e) {
|
||||
noElementExceptionThrown = true;
|
||||
}
|
||||
Assert.assertTrue(noElementExceptionThrown);
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
noElementExceptionThrown = true;
|
||||
}
|
||||
Assert.assertTrue(noElementExceptionThrown);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRewindableIterator() {
|
||||
ObserverList<Integer> observerList = new ObserverList<Integer>();
|
||||
observerList.addObserver(5);
|
||||
observerList.addObserver(10);
|
||||
observerList.addObserver(15);
|
||||
Assert.assertEquals(3, getSizeOfIterable(observerList));
|
||||
@Test
|
||||
public void testRewindableIterator()
|
||||
{
|
||||
ObserverList<Integer> observerList = new ObserverList<Integer>();
|
||||
observerList.addObserver(5);
|
||||
observerList.addObserver(10);
|
||||
observerList.addObserver(15);
|
||||
Assert.assertEquals(3, getSizeOfIterable(observerList));
|
||||
|
||||
ObserverList.RewindableIterator<Integer> it = observerList.rewindableIterator();
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertFalse(it.hasNext());
|
||||
ObserverList.RewindableIterator<Integer> it = observerList.rewindableIterator();
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertFalse(it.hasNext());
|
||||
|
||||
it.rewind();
|
||||
it.rewind();
|
||||
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertEquals(5, (int) observerList.mObservers.get(0));
|
||||
observerList.removeObserver(5);
|
||||
Assert.assertEquals(null, observerList.mObservers.get(0));
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(5, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
Assert.assertEquals(5, (int) observerList.mObservers.get(0));
|
||||
observerList.removeObserver(5);
|
||||
Assert.assertEquals(null, observerList.mObservers.get(0));
|
||||
|
||||
it.rewind();
|
||||
it.rewind();
|
||||
|
||||
Assert.assertEquals(10, (int) observerList.mObservers.get(0));
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
}
|
||||
Assert.assertEquals(10, (int) observerList.mObservers.get(0));
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(10, (int) it.next());
|
||||
Assert.assertTrue(it.hasNext());
|
||||
Assert.assertEquals(15, (int) it.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddObserverReturnValue() {
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
@Test
|
||||
public void testAddObserverReturnValue()
|
||||
{
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
|
||||
Object a = new Object();
|
||||
Assert.assertTrue(observerList.addObserver(a));
|
||||
Assert.assertFalse(observerList.addObserver(a));
|
||||
Object a = new Object();
|
||||
Assert.assertTrue(observerList.addObserver(a));
|
||||
Assert.assertFalse(observerList.addObserver(a));
|
||||
|
||||
Object b = new Object();
|
||||
Assert.assertTrue(observerList.addObserver(b));
|
||||
Assert.assertFalse(observerList.addObserver(null));
|
||||
}
|
||||
Object b = new Object();
|
||||
Assert.assertTrue(observerList.addObserver(b));
|
||||
Assert.assertFalse(observerList.addObserver(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveObserverReturnValue() {
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
@Test
|
||||
public void testRemoveObserverReturnValue()
|
||||
{
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
|
||||
Object a = new Object();
|
||||
Object b = new Object();
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
Object a = new Object();
|
||||
Object b = new Object();
|
||||
observerList.addObserver(a);
|
||||
observerList.addObserver(b);
|
||||
|
||||
Assert.assertTrue(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(new Object()));
|
||||
Assert.assertTrue(observerList.removeObserver(b));
|
||||
Assert.assertFalse(observerList.removeObserver(null));
|
||||
Assert.assertTrue(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(new Object()));
|
||||
Assert.assertTrue(observerList.removeObserver(b));
|
||||
Assert.assertFalse(observerList.removeObserver(null));
|
||||
|
||||
// If we remove an object while iterating, it will be replaced by 'null'.
|
||||
observerList.addObserver(a);
|
||||
Assert.assertTrue(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(null));
|
||||
}
|
||||
// If we remove an object while iterating, it will be replaced by 'null'.
|
||||
observerList.addObserver(a);
|
||||
Assert.assertTrue(observerList.removeObserver(a));
|
||||
Assert.assertFalse(observerList.removeObserver(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSize() {
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
@Test
|
||||
public void testSize()
|
||||
{
|
||||
ObserverList<Object> observerList = new ObserverList<Object>();
|
||||
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
|
||||
observerList.addObserver(null);
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
observerList.addObserver(null);
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
|
||||
Object a = new Object();
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
Object a = new Object();
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.addObserver(null);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.addObserver(null);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
Object b = new Object();
|
||||
observerList.addObserver(b);
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
Object b = new Object();
|
||||
observerList.addObserver(b);
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(null);
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.removeObserver(null);
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(2, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(b);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.removeObserver(b);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(b);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.removeObserver(b);
|
||||
Assert.assertEquals(1, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(a);
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
observerList.removeObserver(a);
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(a);
|
||||
observerList.removeObserver(b);
|
||||
observerList.removeObserver(null);
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
observerList.removeObserver(a);
|
||||
observerList.removeObserver(b);
|
||||
observerList.removeObserver(null);
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(4, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(new Object());
|
||||
observerList.addObserver(a);
|
||||
Assert.assertEquals(4, observerList.size());
|
||||
Assert.assertFalse(observerList.isEmpty());
|
||||
|
||||
observerList.clear();
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
observerList.clear();
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
|
||||
observerList.removeObserver(a);
|
||||
observerList.removeObserver(b);
|
||||
observerList.removeObserver(null);
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
}
|
||||
observerList.removeObserver(a);
|
||||
observerList.removeObserver(b);
|
||||
observerList.removeObserver(null);
|
||||
observerList.removeObserver(new Object());
|
||||
Assert.assertEquals(0, observerList.size());
|
||||
Assert.assertTrue(observerList.isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user