summaryrefslogtreecommitdiff
path: root/src/test/java/com/mavlushechka/a1qa/project/TestCase1.java
diff options
context:
space:
mode:
authorMavlushechka <mavlushechka@gmail.com>2022-10-17 22:27:51 +0500
committerMavlushechka <mavlushechka@gmail.com>2022-10-17 22:27:51 +0500
commit4bf6614ab5fc9015c48f1b17bf7a631aaf54e258 (patch)
tree0104640a6463e4867e9549917aa4424860c1f338 /src/test/java/com/mavlushechka/a1qa/project/TestCase1.java
parenta32de03308b2246f1e7cd4c970e6f96116b41ea1 (diff)
Divide test case classes into 2 packages: framework and project
Diffstat (limited to 'src/test/java/com/mavlushechka/a1qa/project/TestCase1.java')
-rw-r--r--src/test/java/com/mavlushechka/a1qa/project/TestCase1.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/test/java/com/mavlushechka/a1qa/project/TestCase1.java b/src/test/java/com/mavlushechka/a1qa/project/TestCase1.java
new file mode 100644
index 0000000..b482f1a
--- /dev/null
+++ b/src/test/java/com/mavlushechka/a1qa/project/TestCase1.java
@@ -0,0 +1,74 @@
+package com.mavlushechka.a1qa.project;
+
+import aquality.selenium.browser.AqualityServices;
+import com.mavlushechka.a1qa.framework.BaseTest;
+import com.mavlushechka.a1qa.project.models.Attachment;
+import com.mavlushechka.a1qa.project.models.Comment;
+import com.mavlushechka.a1qa.project.models.Post;
+import com.mavlushechka.a1qa.project.models.User;
+import com.mavlushechka.a1qa.project.pages.FeedPage;
+import com.mavlushechka.a1qa.project.pages.HomePage;
+import com.mavlushechka.a1qa.project.pages.ProfilePage;
+import com.mavlushechka.a1qa.project.pages.SignInPage;
+import com.mavlushechka.a1qa.framework.utils.JsonParser;
+import com.mavlushechka.a1qa.framework.utils.LoggerUtils;
+import com.mavlushechka.a1qa.framework.utils.StringUtils;
+import com.mavlushechka.a1qa.project.utils.VkApiUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+
+public class TestCase1 extends BaseTest {
+
+ @Test
+ public void test1() throws IOException {
+ HomePage homePage = new HomePage();
+ Assert.assertTrue(homePage.isOpened(), "This is not the " + homePage.getName() + " page.");
+ LoggerUtils.step("[UI] Authorize.");
+ homePage.performAuthorization(JsonParser.parseData("testData", "vkontakte.account.login"));
+
+ SignInPage signInPage = new SignInPage();
+ Assert.assertTrue(signInPage.isOpened(), "This is not the " + signInPage.getName() + " page.");
+ signInPage.performAuthorization(JsonParser.parseData("testData", "vkontakte.account.password"));
+
+ FeedPage feedPage = new FeedPage();
+ Assert.assertTrue(feedPage.isOpened(), "This is not the " + feedPage.getName() + " page.");
+ AqualityServices.getBrowser().waitForPageToLoad();
+ LoggerUtils.step("[UI] Go to \"My profile\".");
+ feedPage.clickMyProfileButton();
+
+ ProfilePage profilePage = new ProfilePage();
+ Assert.assertTrue(profilePage.isOpened(), "This is not the " + profilePage.getName() + " page.");
+ User user = VkApiUtils.getCurrentUser();
+ int textLettersLowerBound = Integer.parseInt(JsonParser.parseData("config", "randomTextGenerator.lettersLowerBound"));
+ int textLettersUpperBound = Integer.parseInt(JsonParser.parseData("config", "randomTextGenerator.lettersUpperBound"));
+ int textLength = Integer.parseInt(JsonParser.parseData("config", "randomTextGenerator.length"));
+ String postRandomText = StringUtils.generateRandomText(textLettersLowerBound, textLettersUpperBound, textLength);
+ LoggerUtils.step("[API] Create post on the wall with randomly generated text using API-request and save id of the post from the API-response.");
+ Post post = new Post(VkApiUtils.createPost(postRandomText), user, postRandomText, null);
+ LoggerUtils.step("[UI] Check that post with the sent text from the correct user appeared on the wall without refreshing the page.");
+ Assert.assertTrue(profilePage.containsPost(post), "This is not the correct post.");
+ Attachment picture = new Attachment(com.mavlushechka.a1qa.project.constants.Attachment.PHOTO, user.getId(), Integer.parseInt(JsonParser.parseData("testData", "vkontakte.photoFromAlbum.id")));
+ LoggerUtils.step("[API] Edit the added post using API-request - change text and add(upload) a picture.");
+ Post editedPost = new Post(post.id(), user, post.message() + "[edited]", picture);
+ VkApiUtils.editPost(post, editedPost);
+ profilePage.waitForPostUpdate(editedPost);
+ LoggerUtils.step("[UI] Check that text was updated and the picture was uploaded(make sure that pictures are the same) without refreshing the page.");
+ Assert.assertTrue(profilePage.containsPost(editedPost), "This is not the correct post.");
+ String commentRandomText = StringUtils.generateRandomText(textLettersLowerBound, textLettersUpperBound, textLength);
+ LoggerUtils.step("[API] Add a comment to the post with the randomly generated text using API-request.");
+ Comment comment = new Comment(VkApiUtils.createComment(editedPost.id(), commentRandomText), user, editedPost, commentRandomText);
+ LoggerUtils.step("[UI] Check that comment from the correct user was added to the post without refreshing the page.");
+ Assert.assertTrue(profilePage.containsComment(comment), "This is not the correct comment.");
+ LoggerUtils.step("[UI] Like the post using UI.");
+ profilePage.clickPostLikeButton(post);
+ LoggerUtils.step("[API] Check that the post received like from the correct user using API-request.");
+ Assert.assertTrue(VkApiUtils.containsLike(editedPost, user), "The post did not receive like from the correct user.");
+ LoggerUtils.step("[API] Delete the post using API-request.");
+ VkApiUtils.deletePost(editedPost);
+ profilePage.waitForPostDelete(editedPost);
+ Assert.assertTrue(profilePage.notContainsPost(editedPost), "The post is not deleted.");
+ }
+
+}