[android] Re-format java code by clang-format

Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
Konstantin Pastbin
2025-07-29 22:31:32 +07:00
parent 65b5234396
commit 5333ad3597
348 changed files with 4770 additions and 5563 deletions

View File

@@ -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);

View File

@@ -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());
}
}