package com.shootoff.camera; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import com.shootoff.camera.processors.ShotProcessor; import com.shootoff.camera.processors.VirtualMagazineProcessor; import com.shootoff.camera.shot.ShotColor; import com.shootoff.config.Configuration; import com.shootoff.config.ConfigurationException; public class TestVirtualMagazineProcessor { private Configuration config; @Before public void setUp() throws ConfigurationException { config = new Configuration(new String[0]); config.setUseVirtualMagazine(true); } @Test public void testThreeShotCapacity() { config.setVirtualMagazineCapacity(3); VirtualMagazineProcessor magazineProcessor = null; for (ShotProcessor s : config.getShotProcessors()) { if (s instanceof VirtualMagazineProcessor) magazineProcessor = (VirtualMagazineProcessor) s; } magazineProcessor.setUseTTS(false); Shot shot = new Shot(ShotColor.GREEN, 0, 0, 0, 0); // Simulate shooting through two magazine assertTrue(magazineProcessor.processShot(shot)); assertTrue(magazineProcessor.processShot(shot)); assertTrue(magazineProcessor.processShot(shot)); assertFalse(magazineProcessor.processShot(shot)); assertTrue(magazineProcessor.processShot(shot)); assertTrue(magazineProcessor.processShot(shot)); assertTrue(magazineProcessor.processShot(shot)); assertFalse(magazineProcessor.processShot(shot)); } @Test public void testReset() { final int expectedCapacity = 4; config.setVirtualMagazineCapacity(expectedCapacity); VirtualMagazineProcessor magazineProcessor = null; for (ShotProcessor s : config.getShotProcessors()) { if (s instanceof VirtualMagazineProcessor) magazineProcessor = (VirtualMagazineProcessor) s; } magazineProcessor.setUseTTS(false); Shot shot = new Shot(ShotColor.GREEN, 0, 0, 0, 0); magazineProcessor.processShot(shot); magazineProcessor.processShot(shot); assertEquals(2, magazineProcessor.getRountCount()); magazineProcessor.reset(); assertEquals(expectedCapacity, magazineProcessor.getRountCount()); } }