BankOperationsTests0304/Testfinskaya0304/UnitTest1.cs
Your Name 9597d720d2 done
2025-04-22 23:51:28 +03:00

316 lines
9.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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());
}
}