com.github.grzesiek_galezowski.test_environment.buffer.implementation.SynchronizedReceivedObjectBuffer Maven / Gradle / Ivy
package com.github.grzesiek_galezowski.test_environment.buffer.implementation;
import com.github.grzesiek_galezowski.test_environment.buffer.interfaces.Buffer;
import com.github.grzesiek_galezowski.test_environment.buffer.interfaces.BufferObserver;
import com.github.grzesiek_galezowski.test_environment.buffer.interfaces.ItemSubscriber;
import com.github.grzesiek_galezowski.test_environment.buffer.interfaces.MatchCountCondition;
import com.github.grzesiek_galezowski.test_environment.buffer.interfaces.Poll;
import lombok.Synchronized;
import org.assertj.core.api.Condition;
import java.time.Duration;
/**
* Created by grzes on 09.07.2017.
*/
public class SynchronizedReceivedObjectBuffer implements Buffer {
private Buffer innerBuffer;
private BufferObserver observer;
public SynchronizedReceivedObjectBuffer(
final Buffer innerBuffer,
final BufferObserver observer) {
this.innerBuffer = innerBuffer;
this.observer = observer;
}
@Override
@Synchronized
public void store(final T object) {
innerBuffer.store(object);
}
@Override
@Synchronized
public void store(final T[] objects) {
innerBuffer.store(objects);
}
@Override
@Synchronized
public void store(final Iterable objects) {
innerBuffer.store(objects);
}
@Override
@Synchronized()
public void assertContains(final MatchCountCondition matchCountCondition, final Condition condition) {
innerBuffer.assertContains(matchCountCondition, condition);
}
@Override
@Synchronized
public boolean contains(final MatchCountCondition matchCountCondition, final Condition condition) {
return innerBuffer.contains(matchCountCondition, condition);
}
@Override
@Synchronized
public boolean isEmpty() {
return innerBuffer.isEmpty();
}
@Override
@Synchronized
public void clearItems() {
innerBuffer.clearItems();
}
@Override
@Synchronized
public void subscribeForItems(final ItemSubscriber subscriber) {
innerBuffer.subscribeForItems(subscriber);
}
@Override
@Synchronized
public void subscribeFor(final Condition condition, final ItemSubscriber subscriber) {
innerBuffer.subscribeFor(condition, subscriber);
}
@Override
@Synchronized
public Poll poll() {
return AwaitilityPoll.on(this, observer);
}
@Override
@Synchronized
public Poll pollFor(final Duration duration) {
return AwaitilityPoll.on(this, duration, observer);
}
}