]> git.basschouten.com Git - openhab-addons.git/blob
3d40103b4efd24aa2216f6887ac79f8a7bdaa4f6
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2020 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 java.io.BufferedReader;
16 import java.io.IOException;
17 import java.io.InputStreamReader;
18
19 import org.apache.commons.io.IOUtils;
20 import org.junit.Assert;
21 import org.junit.Assume;
22 import org.junit.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() {
40         Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
41         BufferedReader bufferedReader = null;
42         try {
43             Process process = Runtime.getRuntime().exec("say -v ?");
44             InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
45             bufferedReader = new BufferedReader(inputStreamReader);
46
47             String nextLine = bufferedReader.readLine();
48             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
49             Assert.assertNotNull("The MacTTSVoice(String) constructor failed", voiceMacOS);
50         } catch (IOException e) {
51             Assert.fail("testConstructor() failed with IOException: " + e.getMessage());
52         } finally {
53             IOUtils.closeQuietly(bufferedReader);
54         }
55     }
56
57     /**
58      * Test VoiceMacOS.getUID()
59      */
60     @Test
61     public void getUIDTest() {
62         Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
63         BufferedReader bufferedReader = null;
64         try {
65             Process process = Runtime.getRuntime().exec("say -v ?");
66             InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
67             bufferedReader = new BufferedReader(inputStreamReader);
68
69             String nextLine = bufferedReader.readLine();
70             MacTTSVoice macTTSVoice = new MacTTSVoice(nextLine);
71             Assert.assertTrue("The VoiceMacOS UID has an incorrect format",
72                     (0 == macTTSVoice.getUID().indexOf("mactts:")));
73         } catch (IOException e) {
74             Assert.fail("getUIDTest() failed with IOException: " + e.getMessage());
75         } finally {
76             IOUtils.closeQuietly(bufferedReader);
77         }
78     }
79
80     /**
81      * Test MacTTSVoice.getLabel()
82      */
83     @Test
84     public void getLabelTest() {
85         Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
86         BufferedReader bufferedReader = null;
87         try {
88             Process process = Runtime.getRuntime().exec("say -v ?");
89             InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
90             bufferedReader = new BufferedReader(inputStreamReader);
91
92             String nextLine = bufferedReader.readLine();
93             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
94             Assert.assertNotNull("The MacTTSVoice label has an incorrect format", voiceMacOS.getLabel());
95         } catch (IOException e) {
96             Assert.fail("getLabelTest() failed with IOException: " + e.getMessage());
97         } finally {
98             IOUtils.closeQuietly(bufferedReader);
99         }
100     }
101
102     /**
103      * Test MacTTSVoice.getLocale()
104      */
105     @Test
106     public void getLocaleTest() {
107         Assume.assumeTrue("Mac OS X" == System.getProperty("os.name"));
108         BufferedReader bufferedReader = null;
109         try {
110             Process process = Runtime.getRuntime().exec("say -v ?");
111             InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
112             bufferedReader = new BufferedReader(inputStreamReader);
113
114             String nextLine = bufferedReader.readLine();
115             MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
116             Assert.assertNotNull("The MacTTSVoice locale has an incorrect format", voiceMacOS.getLocale());
117         } catch (IOException e) {
118             Assert.fail("getLocaleTest() failed with IOException: " + e.getMessage());
119         } finally {
120             IOUtils.closeQuietly(bufferedReader);
121         }
122     }
123 }