316 lines
9.2 KiB
C#
316 lines
9.2 KiB
C#
using System.Security.Principal;
|
||
using finskaya0304;
|
||
|
||
namespace TestFinskaya0304;
|
||
|
||
public class Tests
|
||
{
|
||
private account[] user;
|
||
private StringReader _stringReader;
|
||
private StringWriter _stringWriter;
|
||
[SetUp]
|
||
public void Setup()
|
||
{
|
||
user = new account[100];
|
||
_stringWriter = new StringWriter();
|
||
Console.SetOut(_stringWriter);
|
||
}
|
||
|
||
|
||
[TearDown]
|
||
public void TearDown()
|
||
{
|
||
_stringWriter?.Dispose();
|
||
_stringReader?.Dispose();
|
||
}
|
||
|
||
[Test]
|
||
public void OpenNewAccount_ShouldReturnNewAccountWithNameSumAndNum_WhenFioStringAndSumMore1000()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
Assert.AreEqual(user[0].GetName(), "fio");
|
||
Assert.AreEqual(user[0].GetSum(), 1000.00);
|
||
Assert.IsNotEmpty(user[0].GetNum());
|
||
}
|
||
|
||
[Test]
|
||
public void OpenNewAccount_ShouldReturnNewAccountWithNameSumAndNum_WhenFioStringAndSumLess1000()
|
||
{
|
||
_stringReader = new StringReader("fio\n100\nfio\n1000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
string output = _stringWriter.ToString();
|
||
|
||
Assert.IsTrue(output.Contains("Сумма слишком мала, попробуйте ещё раз!"));
|
||
}
|
||
|
||
[Test]
|
||
public void OpenNewAccount_ShouldReturnNewAccountWithNameSumAndNum_WhenFioIsNumberAndSumMore1000()
|
||
{
|
||
_stringReader = new StringReader("123\n1000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
string output = _stringWriter.ToString();
|
||
|
||
Assert.AreEqual(user[0].GetName(), "123");
|
||
Assert.AreEqual(user[0].GetSum(), 1000.00);
|
||
Assert.IsNotEmpty(user[0].GetNum());
|
||
}
|
||
|
||
[Test]
|
||
public void OpenNewAccount_ShouldThrowFormatException_WhenFioStringAndSumIsString()
|
||
{
|
||
_stringReader = new StringReader("123\nbuba\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
|
||
Assert.Throws<FormatException>(() => user[0].otk());
|
||
}
|
||
|
||
[Test]
|
||
public void CreateNewNum_ShouldReturnNewNumWithLen20_WhenCreatedNewAccount()
|
||
{
|
||
user[0] = new account();
|
||
user[0].num_gen();
|
||
|
||
Assert.AreEqual(user[0].GetNum().Length, 20);
|
||
}
|
||
|
||
[Test]
|
||
public void CreateFileWIthAccountInfo_ShouldCreateFileWithCorrectContent_WhenFioStringAndSumMore1000()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
string filePath = Path.Combine(Directory.GetCurrentDirectory(), user[0].GetNum() + ".txt");
|
||
|
||
Assert.IsTrue(File.Exists(filePath));
|
||
|
||
string fileContent = File.ReadAllText(filePath);
|
||
Assert.IsTrue(fileContent.Contains(user[0].GetNum()));
|
||
Assert.IsTrue(fileContent.Contains(user[0].GetName()));
|
||
Assert.IsTrue(fileContent.Contains(user[0].GetSum().ToString()));
|
||
}
|
||
|
||
[Test]
|
||
public void ReplenishmentOfBalance_ShouldReturnNewBalance_WhenReplenishmentSumIsPositive()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n500\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()+500;
|
||
user[0].top_up();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void ReplenishmentOfBalance_ShouldReturnNewBalance_WhenReplenishmentSumIsNegative()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n-500\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()+(-500);
|
||
user[0].top_up();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void ReplenishmentOfBalance_ShouldReturnNewBalance_WhenReplenishmentSumIsZero()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n0\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()+0;
|
||
user[0].top_up();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void ReplenishmentOfBalance_ShouldThrowFormatException_WhenReplenishmentSumIsString()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\naa\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
|
||
user[0].otk();
|
||
|
||
Assert.Throws<FormatException>(() => user[0].top_up());
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldReturnNewBalance_WhenWithdrawalSumIsPositive()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n500\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()-500;
|
||
user[0].umen();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldReturnNewBalance_WhenWithdrawalSumIsNegative()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n-500\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()-(-500);
|
||
user[0].umen();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldReturnNewBalance_WhenWithdrawalSumIsZero()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n0\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum()-0;
|
||
user[0].umen();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldReturnNewBalance_WhenBalanceLesserThanZero()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n2000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum();
|
||
user[0].umen();
|
||
|
||
var ex = Assert.Throws<AssertionException>(() =>
|
||
{
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
});
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldThrowFormatException_WhenWithdrawalSumIsString()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\naa\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
Assert.Throws<FormatException>(() => user[0].umen());
|
||
}
|
||
|
||
[Test]
|
||
public void WithdrawalFromBalance_ShouldReturnNewBalance_WhenWithdrawalSumIsAllBalance()
|
||
{
|
||
_stringReader = new StringReader("fio\n1000\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
float balance = user[0].GetSum() - 1000;
|
||
user[0].obnul();
|
||
|
||
Assert.AreEqual(balance, user[0].GetSum());
|
||
}
|
||
|
||
[Test]
|
||
public void TransferFromBalance_ShouldReturnNewBalances_WhenSumOfTransferLesserThanBalance()
|
||
{
|
||
_stringReader = new StringReader("fio\n3000\nfio2\n5000\n1000\n1\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
user[1] = new account();
|
||
user[1].otk();
|
||
|
||
float balance1 = user[0].GetSum()-1000;
|
||
float balance2 = user[1].GetSum()+1000;
|
||
|
||
user[0].perevod();
|
||
|
||
var ex = Assert.Throws<AssertionException>(() =>
|
||
{
|
||
Assert.AreEqual(balance1, user[0].GetSum(), 0.001f);
|
||
Assert.AreEqual(balance2, user[1].GetSum(), 0.001f);
|
||
});
|
||
}
|
||
|
||
[Test]
|
||
public void TransferFromBalance_ShouldReturnNewBalances_WhenSumOfTransferBiggerThanBalance()
|
||
{
|
||
_stringReader = new StringReader("fio\n3000\nfio2\n5000\n10000\n1\n0\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
user[1] = new account();
|
||
user[1].otk();
|
||
|
||
user[0].perevod();
|
||
|
||
string output = _stringWriter.ToString();
|
||
|
||
Assert.IsTrue(output.Contains("На счету недостаточно средств!"));
|
||
}
|
||
|
||
[Test]
|
||
public void TransferFromBalance_ShouldThrowFormatException_WhenSumOfTransferIsString()
|
||
{
|
||
_stringReader = new StringReader("fio\n3000\nfio2\n5000\naa\n1\n");
|
||
Console.SetIn(_stringReader);
|
||
|
||
user[0] = new account();
|
||
user[0].otk();
|
||
|
||
user[1] = new account();
|
||
user[1].otk();
|
||
|
||
Assert.Throws<FormatException>(() => user[0].perevod());
|
||
}
|
||
}
|