Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,12 @@ public async Task UserAlreadyExistRegisterTest()
registerResult.Errors.Should().BeNullOrEmpty();
registerResult.Value.AccessToken.Should().NotBeNullOrEmpty();

var secondRegisterResult = await _authServiceClient.Register(userData);
var result = await _authServiceClient.Register(userData);

secondRegisterResult.Succeeded.Should().BeFalse();
secondRegisterResult.Errors.Should()
result.Succeeded.Should().BeFalse();
result.Errors.Should()
.BeEquivalentTo("Пользователь уже зарегистрирован");

secondRegisterResult.Value.Should().BeNull();
result.Value.Should().BeNull();
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,336 @@
using System;
using System.IO;
using System.Net.Mail;
using System.Reflection;
using AutoFixture;
using FluentAssertions;
using HwProj.PageObjects;
using HwProj.PageObjects.AuthServicePageObjects;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace HwProj.AuthService.SeleniumTests
{
public class Tests
{
private IWebDriver _webDriver;
private readonly string _url = "http://localhost:3000/";

[SetUp]
public void Setup()
{
_webDriver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
_webDriver.Navigate().GoToUrl(_url);
}

[Test]
public void RegisterTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName);

WaitUntil.WaitLocation(_webDriver, _url, 5);

var currentUrl = _webDriver.Url;
currentUrl.Should().Be(_url);
}

[Test]
public void UserRegistrationTwiceTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.SignOff()
.MoveToRegister()
.Register(name, surname, email, password, password, middleName);

var result = new RegisterPageObject(_webDriver).GetResult();

result.Should().Be("Пользователь уже зарегистрирован");
}

[Test]
public void RegisterUserWithDifferentPasswordsTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();
var confirmPassword = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, confirmPassword, middleName);

var result = new RegisterPageObject(_webDriver).GetResult();

result.Should().Be("Пароли не совпадают");
}

[Test]
public void LoginTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login(email, password);

WaitUntil.WaitLocation(_webDriver, _url, 5);

var currentUrl = _webDriver.Url;
currentUrl.Should().Be(_url);
}

[Test]
public void LoginUnregisteredUserTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToLogin()
.Login(email, password);

var result = new LoginPageObject(_webDriver).GetResult();

result.Should().Be("Пользователь не найден");
}

[Test]
public void LoginWithIncorrectPasswordTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();
var incorrectPassword = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login(email, incorrectPassword);

var result = new LoginPageObject(_webDriver).GetResult();

result.Should().Be("Неправильный логин или пароль");
}

[Test]
public void EditAccountDataTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

var newName = GenerateString();
var newSurname = GenerateString();
var newMiddleName = GenerateString();

var profileData = mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.MoveToEditProfile()
.EditProfile(newName, newSurname, password, newMiddleName, password)
.MoveToMenu()
.MoveToProfile()
.GetProfileData()
.Split(" ");

profileData[0].Should().Be(newName);
profileData[1].Should().Be(newMiddleName);
profileData[2].Should().Be(newSurname);
}

[Test]
public void EditPasswordTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

var newPassword = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.MoveToEditProfile()
.EditProfile(name, surname, password, middleName, newPassword)
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login(email, newPassword);
WaitUntil.WaitLocation(_webDriver, _url, 5);
var currentUrl = _webDriver.Url;

currentUrl.Should().Be(_url);
}

[Test]
public void EditAccountDataWithIncorrectCurrentPasswordTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

var newName = GenerateString();
var newSurname = GenerateString();
var newMiddleName = GenerateString();
var newPassword = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.MoveToEditProfile()
.EditProfile(newName, newSurname, newPassword, newMiddleName, newPassword);

var result = new EditProfilePageObject(_webDriver).GetResult();
result.Should().Be("Неправильный логин или пароль");

var newMainMenu = new MainMenuPageObject(_webDriver);

newMainMenu
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login(email, newPassword);

var loginResult = new LoginPageObject(_webDriver).GetResult();
loginResult.Should().Be("Неправильный логин или пароль");
}

[Test]
public void InviteNewLecturerTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login("admin@gmail.com", "Admin@1234")
.MoveToMenu()
.MoveToInviteLecturer()
.InviteLecturer(email);

var result = new InviteLecturerPageObject(_webDriver).GetSuccess();

result.Should().Be("Запрос отправлен");
}

[Test]
public void InviteOneLecturerTwoTimes()
{
var mainMenu = new MainMenuPageObject(_webDriver);
var name = GenerateString();
var surname = GenerateString();
var middleName = GenerateString();
var email = GenerateEmail();
var password = GenerateString();

mainMenu
.MoveToRegister()
.Register(name, surname, email, password, password, middleName)
.MoveToMenu()
.SignOff()
.MoveToLogin()
.Login("admin@gmail.com", "Admin@1234")
.MoveToMenu()
.MoveToInviteLecturer()
.InviteLecturer(email);

var result = new InviteLecturerPageObject(_webDriver).GetSuccess();
result.Should().Be("Запрос отправлен");

var inviteResult = new InviteLecturerPageObject(_webDriver)
.Close()
.MoveToMenu()
.MoveToInviteLecturer()
.InviteLecturer(email)
.GetError();

inviteResult.Should().Be("Некорректный адрес электронной почты.");
}

[Test]
public void CheckProfileTest()
{
var mainMenu = new MainMenuPageObject(_webDriver);

var profileData = mainMenu
.MoveToLogin()
.Login("admin@gmail.com", "Admin@1234")
.MoveToMenu()
.MoveToProfile()
.GetProfileData();

profileData.Should().Contain("admin@gmail.com");
}

[TearDown]
public void TearDown()
{
_webDriver.Quit();
}

private string GenerateString()
=> new Fixture().Create<string>().Substring(0, 6);

private string GenerateEmail()
=> new Fixture().Create<MailAddress>().Address;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AutoFixture" Version="4.17.0" />
<PackageReference Include="FluentAssertions" Version="6.6.0" />
<PackageReference Include="nunit" Version="3.11.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.11.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="Selenium.WebDriver" Version="4.1.1" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="102.0.5005.6102" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\HwProj.Common\HwProj.PageObjects\HwProj.PageObjects.csproj" />
</ItemGroup>

</Project>
Loading