Junit provided, its easy and not suppose to take you more than 15 mins. --------
ID: 3882896 • Letter: J
Question
Junit provided, its easy and not suppose to take you more than 15 mins.
------------------------------------------------------------------------
Write an interface named Speaker which declares a two methods: public String noiseMade() andpublic String formatName(String name). You then need to write 4 classes that implement your Speaker interface. The name and description of each of these classes is as follows:
Cow -- The formatName method should return the latin name for a cow (Bos taurus), a space, and then the value of name. Cow's noiseMade() method should return the String "Moo".
Duck -- The formatName method should return the latin name for a duck (Anas platyrhynchos), a space, and then the value of name. Duck's noiseMade() method should return the String "Quack".
Bullfrog -- The formatName method should return the latin name for a bullfrog (Rana catesbeiana), a space, and then the value of name. Bullfrog's noiseMade() method should return the String "Biggest rain we ever had".
Person -- The formatName method should return the latin name for a person (Homo sapiens), a space, and then the value of name. The Person class should define a field named emotion which has an appropriate access modifier & getters and setters. Person's constructor should define a single String parameter specifying the emotional state for the instance. Person's noiseMade() method should return the String "Hello, I feel " and then the instance's emotion.
-----------------------------------------------------------------------------
Test for Spekaer:
package edu.buffalo.cse116;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.lang.reflect.Method;
import org.junit.Test;
/**
* This is actually a bad set of tests, since each class should only define tests for a single class. I am doing this
* anyway, however, to simplify the work you must do on this weekly assignment.
*
* @author Matthew Hertz
*/
public class SpeakerTest {
// Test that the interface is properly defined.
@Test
public void testSpeaker() throws SecurityException, NoSuchMethodException {
Class<?> speaker = Speaker.class;
assertTrue("Speaker must be an interface!", speaker.isInterface());
Method[] methods = speaker.getMethods();
assertEquals("Speaker should define 2 methods", 2, methods.length);
Method formatName = speaker.getMethod("formatName", String.class);
assertNotNull("Speaker should define a method name formatName with a single String parameter", formatName);
assertEquals("formatName should return a String", String.class, formatName.getReturnType());
Method noiseMade = speaker.getMethod("noiseMade");
assertNotNull("Speaker should define a method name noiseMade with no parameters", noiseMade);
assertEquals("noiseMade should return a String", String.class, noiseMade.getReturnType());
}
// Test that your Cow class works and is properly defined.
@Test
public void testCow() {
Class<?> cowClass = Cow.class;
Class<?>[] interfaces = cowClass.getInterfaces();
assertEquals("Cow should only implement 1 class", 1, interfaces.length);
assertEquals("Cow should implement the Speaker interface", Speaker.class, interfaces[0]);
Cow cow = new Cow();
assertEquals("Bos taurus Bessie", cow.formatName("Bessie"));
assertEquals("Bos taurus Clara bell", cow.formatName("Clara bell"));
assertEquals("Moo", cow.noiseMade());
}
// Test that your Duck class works and is properly defined.
@Test
public void testDuck() {
Class<?> duckClass = Duck.class;
Class<?>[] interfaces = duckClass.getInterfaces();
assertEquals("Duck should only implement 1 class", 1, interfaces.length);
assertEquals("Duck should implement the Speaker interface", Speaker.class, interfaces[0]);
Duck duck = new Duck();
assertEquals("Anas platyrhynchos Howard", duck.formatName("Howard")); // Ask your parents why this is funny
assertEquals("Anas platyrhynchos Jack", duck.formatName("Jack")); // Make way!
assertEquals("Quack", duck.noiseMade());
}
// Test that your Bullfrog class works and is properly defined.
@Test
public void testBullfrog() {
Class<?> frogClass = Bullfrog.class;
Class<?>[] interfaces = frogClass.getInterfaces();
assertEquals("Bullfrog should only implement 1 class", 1, interfaces.length);
assertEquals("Bullfrog should implement the Speaker interface", Speaker.class, interfaces[0]);
Bullfrog frog = new Bullfrog();
assertEquals("Rana catesbeiana Toad", frog.formatName("Toad")); // Arnold Lobel told me that he and Frog are
// "friends"
assertEquals("Rana catesbeiana Bob", frog.formatName("Bob"));
assertEquals("Biggest rain we ever had", frog.noiseMade());
}
// Test that your Person class works and is properly defined.
@Test
public void testPerson() {
Class<?> personClass = Person.class;
Class<?>[] interfaces = personClass.getInterfaces();
assertEquals("Person should only implement 1 class", 1, interfaces.length);
assertEquals("Person should implement the Speaker interface", Speaker.class, interfaces[0]);
Person bimodal = new Person("happy");
assertEquals("Homo sapiens Red Sox nation", bimodal.formatName("Red Sox nation"));
assertEquals("Homo sapiens Eddie", bimodal.formatName("Eddie"));
assertEquals("Hello, I feel happy", bimodal.noiseMade());
assertEquals("happy", bimodal.getEmotion());
bimodal.setEmotion("sad");
assertEquals("sad", bimodal.getEmotion());
assertEquals("Hello, I feel sad", bimodal.noiseMade());
}
}
Explanation / Answer
import java.io.*;
interface Speaker{
public String noiseMade();
public String formatName(String Name);
}
class Cow implements Speaker{
public String noiseMade() return "Moo";
public String formatName(String Name) return "Bos taurus"+" "+ Name;
}
class BullFrog implements Speaker{
public String noiseMade() return "Biggest rain we ever had";
public String formatName(String Name) return "Rana catesbeiana"+" "+ Name;
}
class Duck implements Speaker{
public String noiseMade() return "Quack";
public String formatName(String Name) return "Anas platyrhynchos"+" "+ Name;
}
class Person implements Speaker{
public String emotion;
public getEmotion() return this.emotion;
public setEmotion(String e) this.emotion=e;
public String noiseMade() return "Hello, I feel " +this.getEmotion();
public String formatName(String Name) return "Homo sapiens"+" "+ Name;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.