/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.server.plugin;
import java.io.File;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import net.codjo.agent.AclMessage;
import net.codjo.agent.Agent;
import net.codjo.broadcast.common.Broadcaster;
import net.codjo.broadcast.common.BroadcasterMock;
import net.codjo.broadcast.common.Context;
import net.codjo.test.common.LogString;
/**
* Classe de mock de {@link JobConfig}.
*/
class JobConfigMock implements JobConfig {
private LogString log;
private Broadcaster[] broadcasters;
private SQLException getBroadcastersForFailure;
private static final String BROADCAST_DATE = "broadcastDate";
JobConfigMock(LogString log) {
this.log = log;
broadcasters =
new Broadcaster[]{new BroadcasterMock(new LogString("Broadcaster", log))};
}
public void init(Agent agent, AclMessage message) {
log.call("init", "agent:" + agent.getAID().getLocalName(),
"message:" + AclMessage.performativeToString(message.getPerformative()));
}
public Broadcaster[] getBroadcastersFor(String fileName, Context context)
throws SQLException {
log.call("getBroadcastersFor", fileName, "context(" + context.getParameter(BROADCAST_DATE) + ")");
if (getBroadcastersForFailure != null) {
getBroadcastersForFailure.fillInStackTrace();
throw getBroadcastersForFailure;
}
return broadcasters;
}
public Context buildContext(final String user, final String fileName,
final Date generationDate, final Date broadcastDate, final File outFolder) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
log.call("buildContext", user, fileName, format.format(generationDate),
format.format(broadcastDate) + ", " + outFolder);
Context context = new Context();
context.putParameter(BROADCAST_DATE, format.format(broadcastDate));
return context;
}
public void mockGetBroadcastersFor(Broadcaster[] broadcastersMock) {
broadcasters = broadcastersMock;
}
public void mockGetBroadcastersForFailure(SQLException error) {
getBroadcastersForFailure = error;
}
public void mockWarnings(String warnings) {
for (Broadcaster b : broadcasters) {
if (b instanceof BroadcasterMock) {
((BroadcasterMock)b).mockWarnings(warnings);
}
}
}
}