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 static org.junit.jupiter.api.Assertions.*;
16 import static org.junit.jupiter.api.Assumptions.assumeTrue;
18 import java.io.BufferedReader;
19 import java.io.IOException;
20 import java.io.InputStreamReader;
22 import org.apache.commons.io.IOUtils;
23 import org.junit.jupiter.api.Test;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
30 * @author Kelly Davis - Initial contribution and API
32 public class MacTTSVoiceTest {
34 Logger logger = LoggerFactory.getLogger(this.getClass());
37 * Test MacTTSVoice(String) constructor
40 public void testConstructor() throws IOException {
41 assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
42 BufferedReader bufferedReader = null;
44 Process process = Runtime.getRuntime().exec("say -v ?");
45 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
46 bufferedReader = new BufferedReader(inputStreamReader);
48 String nextLine = bufferedReader.readLine();
49 MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
50 assertNotNull(voiceMacOS, "The MacTTSVoice(String) constructor failed");
52 IOUtils.closeQuietly(bufferedReader);
57 * Test VoiceMacOS.getUID()
60 public void getUIDTest() throws IOException {
61 assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
62 BufferedReader bufferedReader = null;
64 Process process = Runtime.getRuntime().exec("say -v ?");
65 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
66 bufferedReader = new BufferedReader(inputStreamReader);
68 String nextLine = bufferedReader.readLine();
69 MacTTSVoice macTTSVoice = new MacTTSVoice(nextLine);
70 assertTrue(0 == macTTSVoice.getUID().indexOf("mactts:"), "The VoiceMacOS UID has an incorrect format");
72 IOUtils.closeQuietly(bufferedReader);
77 * Test MacTTSVoice.getLabel()
80 public void getLabelTest() throws IOException {
81 assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
82 BufferedReader bufferedReader = null;
84 Process process = Runtime.getRuntime().exec("say -v ?");
85 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
86 bufferedReader = new BufferedReader(inputStreamReader);
88 String nextLine = bufferedReader.readLine();
89 MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
90 assertNotNull(voiceMacOS.getLabel(), "The MacTTSVoice label has an incorrect format");
92 IOUtils.closeQuietly(bufferedReader);
97 * Test MacTTSVoice.getLocale()
100 public void getLocaleTest() throws IOException {
101 assumeTrue("Mac OS X" == System.getProperty("os.name"));
102 BufferedReader bufferedReader = null;
104 Process process = Runtime.getRuntime().exec("say -v ?");
105 InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
106 bufferedReader = new BufferedReader(inputStreamReader);
108 String nextLine = bufferedReader.readLine();
109 MacTTSVoice voiceMacOS = new MacTTSVoice(nextLine);
110 assertNotNull(voiceMacOS.getLocale(), "The MacTTSVoice locale has an incorrect format");
112 IOUtils.closeQuietly(bufferedReader);