2 * Copyright (c) 2010-2023 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.junit.jupiter.api.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() 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");
51 * Test VoiceMacOS.getUID()
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");
66 * Test MacTTSVoice.getLabel()
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");
81 * Test MacTTSVoice.getLocale()
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");