2 * Copyright (c) 2010-2020 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
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
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.voice.mactts.internal;
15 import java.io.BufferedReader;
16 import java.io.IOException;
17 import java.io.InputStreamReader;
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;
29 * @author Kelly Davis - Initial contribution and API
31 public class MacTTSVoiceTest {
33 Logger logger = LoggerFactory.getLogger(this.getClass());
36 * Test MacTTSVoice(String) constructor
39 public void testConstructor() {
40 Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
41 BufferedReader bufferedReader = null;
43 Process process = Runtime.getRuntime().exec("say -v ?");
44 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
45 bufferedReader = new BufferedReader(inputStreamReader);
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());
53 IOUtils.closeQuietly(bufferedReader);
58 * Test VoiceMacOS.getUID()
61 public void getUIDTest() {
62 Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
63 BufferedReader bufferedReader = null;
65 Process process = Runtime.getRuntime().exec("say -v ?");
66 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
67 bufferedReader = new BufferedReader(inputStreamReader);
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());
76 IOUtils.closeQuietly(bufferedReader);
81 * Test MacTTSVoice.getLabel()
84 public void getLabelTest() {
85 Assume.assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
86 BufferedReader bufferedReader = null;
88 Process process = Runtime.getRuntime().exec("say -v ?");
89 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
90 bufferedReader = new BufferedReader(inputStreamReader);
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());
98 IOUtils.closeQuietly(bufferedReader);
103 * Test MacTTSVoice.getLocale()
106 public void getLocaleTest() {
107 Assume.assumeTrue("Mac OS X" == System.getProperty("os.name"));
108 BufferedReader bufferedReader = null;
110 Process process = Runtime.getRuntime().exec("say -v ?");
111 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
112 bufferedReader = new BufferedReader(inputStreamReader);
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());
120 IOUtils.closeQuietly(bufferedReader);