Skip to content

Commit

Permalink
Added ClassAnnotated demo app
Browse files Browse the repository at this point in the history
  • Loading branch information
oc committed Jun 9, 2010
1 parent de48daa commit d2ab468
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 0 deletions.
@@ -0,0 +1,54 @@
package no.muda.jackbox.example.classannotation;

import no.muda.jackbox.JackboxRecorder;
import no.muda.jackbox.MethodRecording;
import no.muda.jackbox.persistance.json.JSONPersister;
import org.junit.Before;
import org.junit.Test;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.StringReader;
import java.io.StringWriter;

import static org.fest.assertions.Assertions.assertThat;

public class ClassAnnotatedDemoTest {

private ByteArrayOutputStream sysout;

@Test
public void shouldCallDaoDuringRecording() throws Exception {
ClassAnnotationDemoApp.main(new String[0]);
assertThat(getSysout()).contains("ClassAnnotationDemoDao");
}

@Test
public void shouldNotCallDaoDuringPlayback() throws Exception {
ClassAnnotationDemoApp.main(new String[0]);
MethodRecording recording = JackboxRecorder.getLastCompletedRecording();

JSONPersister persister = new JSONPersister();
StringWriter serializedRecording = new StringWriter();
persister.persistToWriter(recording, serializedRecording);

captureSysout();
recording = persister.readFromReader(new StringReader(serializedRecording.toString()));

recording.replay();
assertThat(getSysout())
.contains("ClassAnnotationDemoService")
.excludes("ClassAnnotationDemoDao");
}

private String getSysout() {
return new String(sysout.toByteArray());
}

@Before
public void captureSysout() {
sysout = new ByteArrayOutputStream();
System.setOut(new PrintStream(sysout));
}

}
@@ -0,0 +1,10 @@
package no.muda.jackbox.example.classannotation;

public class ClassAnnotationDemoApp {

public static void main(String[] args) {
ClassAnnotationDemoService service = new ClassAnnotationDemoService();
service.doSomething();
}

}
@@ -0,0 +1,17 @@
package no.muda.jackbox.example.classannotation;

import no.muda.jackbox.annotations.Dependency;
import no.muda.jackbox.example.Entity;

import java.util.Arrays;
import java.util.List;

@Dependency
public class ClassAnnotationDemoDao {

public List<Entity> findAll() {
System.out.println("In " + getClass());
return Arrays.asList(new Entity("A"), new Entity("B"));
}

}
@@ -0,0 +1,22 @@
package no.muda.jackbox.example.classannotation;

import no.muda.jackbox.annotations.Recording;
import no.muda.jackbox.example.Entity;

import java.util.List;

@Recording
public class ClassAnnotationDemoService {

private ClassAnnotationDemoDao dao = new ClassAnnotationDemoDao();

public int doSomething() {
System.out.println("In " + getClass());
List<Entity> entities = dao.findAll();
for (Entity entity : entities) {
System.out.println(entity);
}
return entities.size();
}

}

0 comments on commit d2ab468

Please sign in to comment.