• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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