1 package org.robolectric.shadows; 2 3 import static com.google.common.truth.Truth.assertThat; 4 import static org.robolectric.shadows.ShadowToneGenerator.MAXIMUM_STORED_TONES; 5 6 import android.media.AudioManager; 7 import android.media.ToneGenerator; 8 import androidx.test.ext.junit.runners.AndroidJUnit4; 9 import java.time.Duration; 10 import org.junit.Before; 11 import org.junit.Test; 12 import org.junit.runner.RunWith; 13 import org.robolectric.shadows.ShadowToneGenerator.Tone; 14 15 /** Test class for ShadowToneGenerator */ 16 @RunWith(AndroidJUnit4.class) 17 public class ShadowToneGeneratorTest { 18 private static final int TONE_RELATIVE_VOLUME = 80; 19 private ToneGenerator toneGenerator; 20 21 @Before setUp()22 public void setUp() { 23 toneGenerator = new ToneGenerator(AudioManager.STREAM_DTMF, TONE_RELATIVE_VOLUME); 24 } 25 26 @Test testProvideToneAndDuration()27 public void testProvideToneAndDuration() { 28 assertThat(toneGenerator.startTone(ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE)).isTrue(); 29 Tone initialTone = 30 Tone.create(ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE, Duration.ofMillis(-1)); 31 32 assertThat(ShadowToneGenerator.getPlayedTones()).containsExactly(initialTone); 33 34 for (int i = 0; i < MAXIMUM_STORED_TONES; i++) { 35 assertThat(toneGenerator.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT, 1000)).isTrue(); 36 } 37 38 assertThat(ShadowToneGenerator.getPlayedTones()).hasSize(MAXIMUM_STORED_TONES); 39 40 assertThat(ShadowToneGenerator.getPlayedTones()).doesNotContain(initialTone); 41 } 42 } 43