Add oving 4
This commit is contained in:
93
src/test/java/oving4/twitter/TweetTest.java
Normal file
93
src/test/java/oving4/twitter/TweetTest.java
Normal file
@@ -0,0 +1,93 @@
|
||||
package oving4.twitter;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TweetTest {
|
||||
|
||||
private Tweet retweet1;
|
||||
private Tweet tweet;
|
||||
private TwitterAccount kari;
|
||||
private TwitterAccount nils;
|
||||
private TwitterAccount ole;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
nils = new TwitterAccount("Nils");
|
||||
ole = new TwitterAccount("Ole");
|
||||
kari = new TwitterAccount("Kari");
|
||||
tweet = new Tweet(nils, "Kvitre!");
|
||||
retweet1 = null;
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check that the constructor initializes correctly")
|
||||
public void testNullInConstructors() {
|
||||
assertEquals("Kvitre!", tweet.getText());
|
||||
assertEquals(nils, tweet.getOwner());
|
||||
|
||||
assertThrows(IllegalArgumentException.class, () -> {
|
||||
new Tweet(null, "Kvitre!");
|
||||
}, "The tweet must have an owner");
|
||||
|
||||
assertThrows(IllegalArgumentException.class, () -> {
|
||||
new Tweet(nils, (String) null);
|
||||
}, "The tweet must have text");
|
||||
|
||||
assertThrows(IllegalArgumentException.class, () -> {
|
||||
new Tweet(null, tweet);
|
||||
}, "The tweet must have an owner");
|
||||
|
||||
assertThrows(IllegalArgumentException.class, () -> {
|
||||
new Tweet(nils, (Tweet) null);
|
||||
}, "The tweet must have an original tweet");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void constructorNewTweet() {
|
||||
assertEquals("Kvitre!", tweet.getText(),
|
||||
"The constructor initialized the tweet with incorrect text");
|
||||
assertEquals(nils, tweet.getOwner(),
|
||||
"The constructor initialized the tweet with the wrong owner");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check that retweet has the same text but a different owner")
|
||||
public void constructorRetweet() {
|
||||
retweet1 = new Tweet(ole, tweet);
|
||||
assertEquals("Kvitre!", retweet1.getText());
|
||||
assertEquals(ole, retweet1.getOwner());
|
||||
|
||||
assertThrows(RuntimeException.class, () -> {
|
||||
new Tweet(nils, tweet);
|
||||
}, "A person should not be able to retweet themselves");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check that the original tweet is always correct")
|
||||
public void getOriginalTweet() {
|
||||
assertNull(tweet.getOriginalTweet());
|
||||
|
||||
retweet1 = new Tweet(ole, tweet);
|
||||
assertEquals(tweet, retweet1.getOriginalTweet());
|
||||
assertEquals(retweet1.getOriginalTweet().getText(), retweet1.getText());
|
||||
assertEquals(tweet, retweet1.getOriginalTweet());
|
||||
assertEquals(retweet1.getOriginalTweet().getText(), retweet1.getText());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check that retweet count increases when a tweet is retweeted")
|
||||
public void getRetweetCount() {
|
||||
assertEquals(0, tweet.getRetweetCount());
|
||||
|
||||
new Tweet(ole, tweet);
|
||||
assertEquals(1, tweet.getRetweetCount());
|
||||
|
||||
new Tweet(kari, tweet);
|
||||
assertEquals(2, tweet.getRetweetCount());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user