]> git.basschouten.com Git - openhab-addons.git/blob
090627433d227ba6b3f164ba5f2ba4c829a3a789
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2022 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.voice.mactts.internal;
14
15 import static org.junit.jupiter.api.Assertions.*;
16 import static org.junit.jupiter.api.Assumptions.assumeTrue;
17
18 import java.io.BufferedReader;
19 import java.io.IOException;
20 import java.io.InputStreamReader;
21
22 import org.junit.jupiter.api.Test;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 /**
27  * Test MacTTSVoice
28  *
29  * @author Kelly Davis - Initial contribution and API
30  */
31 public class MacTTSVoiceTest {
32
33     Logger logger = LoggerFactory.getLogger(this.getClass());
34
35     /**
36      * Test MacTTSVoice(String) constructor
37      */
38     @Test
39     public void testConstructor() throws IOException {
40         assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
41         Process process = Runtime.getRuntime().exec("say -v ?");
42         try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
43                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
44             String nextLine = bufferedReader.readLine();
45             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
46             assertNotNull(voiceMacOS, "The MacTTSVoice(String) constructor failed");
47         }
48     }
49
50     /**
51      * Test VoiceMacOS.getUID()
52      */
53     @Test
54     public void getUIDTest() throws IOException {
55         assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
56         Process process = Runtime.getRuntime().exec("say -v ?");
57         try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
58                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
59             String nextLine = bufferedReader.readLine();
60             MacTTSVoice macTTSVoice = new MacTTSVoice(nextLine);
61             assertTrue(0 == macTTSVoice.getUID().indexOf("mactts:"), "The VoiceMacOS UID has an incorrect format");
62         }
63     }
64
65     /**
66      * Test MacTTSVoice.getLabel()
67      */
68     @Test
69     public void getLabelTest() throws IOException {
70         assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
71         Process process = Runtime.getRuntime().exec("say -v ?");
72         try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
73                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
74             String nextLine = bufferedReader.readLine();
75             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
76             assertNotNull(voiceMacOS.getLabel(), "The MacTTSVoice label has an incorrect format");
77         }
78     }
79
80     /**
81      * Test MacTTSVoice.getLocale()
82      */
83     @Test
84     public void getLocaleTest() throws IOException {
85         assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
86         Process process = Runtime.getRuntime().exec("say -v ?");
87         try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
88                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
89             String nextLine = bufferedReader.readLine();
90             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
91             assertNotNull(voiceMacOS.getLocale(), "The MacTTSVoice locale has an incorrect format");
92         }
93     }
94 }