finskaya060525/TestTovarV2/AddTovar.cs

180 lines
5.9 KiB
C#
Raw Permalink Normal View History

2025-05-30 09:22:56 +00:00
using Avalonia;
using Avalonia.Controls;
using Avalonia.Headless;
using Avalonia.Media.Imaging;
using NUnit.Framework;
using System.IO;
using TovarV2;
namespace TestTovarV2
{
[TestFixture]
public class AddTovarTests
{
private AddTovar _addTovarWindow;
private Bitmap _testBitmap;
[OneTimeSetUp]
public void GlobalSetup()
{
AppBuilder.Configure<App>()
.UseHeadless(new AvaloniaHeadlessPlatformOptions())
.SetupWithoutStarting();
var testImagePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Assets", "picture.png");
_testBitmap = new Bitmap(testImagePath);
}
[SetUp]
public void Setup()
{
_addTovarWindow = new AddTovar();
_addTovarWindow.Show();
_addTovarWindow.GetNameTov.Text = "";
_addTovarWindow.GetPriceTov.Text = "";
_addTovarWindow.GetQuantityTov.Text = "";
_addTovarWindow.bitmapToBind = null;
ListPr.ListProd.Clear();
ListPr.b = 1;
}
[TearDown]
public void TearDown()
{
_addTovarWindow.Close();
}
[OneTimeTearDown]
public void GlobalTearDown()
{
_testBitmap?.Dispose();
}
[Test]
public void IsOpenWindow_ShouldReturnTrue_WhenItOpened()
{
Assert.IsTrue(AddTovar.IsOpen);
_addTovarWindow.Close();
}
[Test]
public void IsOpenWindow_ShouldReturnFalse_WhenItClosed()
{
Assert.IsTrue(AddTovar.IsOpen);
_addTovarWindow.Close();
Assert.IsFalse(AddTovar.IsOpen);
}
[Test]
public void AddTovarOk_ShouldReturnAddedProduct_WhenEnteredDataIsCorrect()
{
_addTovarWindow.GetNameTov.Text = "TestProduct";
_addTovarWindow.GetPriceTov.Text = "1";
_addTovarWindow.GetQuantityTov.Text = "2";
_addTovarWindow.bitmapToBind = _testBitmap;
_addTovarWindow.AddTovarOk_Click(null, null);
Assert.AreEqual(1, ListPr.ListProd.Count);
Assert.AreEqual("TestProduct", ListPr.ListProd[0].nameProd);
}
[Test]
public void AddTovarOk_ShouldThrowAssertionException_WhenEnteredNameIsEmpty()
{
_addTovarWindow.GetNameTov.Text = "";
_addTovarWindow.GetPriceTov.Text = "1";
_addTovarWindow.GetQuantityTov.Text = "2";
_addTovarWindow.bitmapToBind = _testBitmap;
_addTovarWindow.AddTovarOk_Click(null, null);
var ex = Assert.Throws<AssertionException>(() =>
{
Assert.AreEqual("TestProduct", ListPr.ListProd[0].nameProd);
});
Assert.That(ex.Message, Does.Contain("Expected string length 11 but was 0"));
}
[Test]
public void AddTovarOk_ShouldThrowFormatException_WhenEnteredPriceIsEmpty()
{
_addTovarWindow.GetNameTov.Text = "TestProduct";
_addTovarWindow.GetPriceTov.Text = "";
_addTovarWindow.GetQuantityTov.Text = "2";
_addTovarWindow.bitmapToBind = _testBitmap;
var ex = Assert.Throws<FormatException>(() =>
{
_addTovarWindow.AddTovarOk_Click(null, null);
});
Assert.That(ex.Message, Does.Contain("input string"));
}
[Test]
public void AddTovarOk_ShouldThrowFormatException_WhenEnteredQuantityIsEmpty()
{
_addTovarWindow.GetNameTov.Text = "TestProduct";
_addTovarWindow.GetPriceTov.Text = "1";
_addTovarWindow.GetQuantityTov.Text = "";
_addTovarWindow.bitmapToBind = _testBitmap;
var ex = Assert.Throws<FormatException>(() =>
{
_addTovarWindow.AddTovarOk_Click(null, null);
});
Assert.That(ex.Message, Does.Contain("input string"));
}
[Test]
public void AddTovarOk_ShouldReturnAddedProduct_WhenImageIsEmpty()
{
_addTovarWindow.GetNameTov.Text = "TestProduct";
_addTovarWindow.GetPriceTov.Text = "1";
_addTovarWindow.GetQuantityTov.Text = "2";
_addTovarWindow.bitmapToBind = null;
_addTovarWindow.AddTovarOk_Click(null, null);
Assert.AreEqual(1, ListPr.ListProd.Count);
Assert.AreEqual("TestProduct", ListPr.ListProd[0].nameProd);
Assert.IsNull(ListPr.ListProd[0].bitmapProd);
}
[Test]
public void AddTovarOk_ShouldReturnError_WhenEnteredNameAlreadyExists()
{
ListPr.ListProd.Add(new Product
{
nameProd = "TestProduct",
priceProd = 1,
quantityProd = 2,
bitmapProd = _testBitmap
});
_addTovarWindow.GetNameTov.Text = "TestProduct";
_addTovarWindow.GetPriceTov.Text = "1";
_addTovarWindow.GetQuantityTov.Text = "2";
_addTovarWindow.bitmapToBind = _testBitmap;
_addTovarWindow.AddTovarOk_Click(null, null);
Assert.AreEqual("Товар с таким именем уже имеется в каталоге", _addTovarWindow.GetErrorMsg.Text);
Assert.AreEqual(1, ListPr.ListProd.Count);
}
[Test]
public void SetBitmap_ShouldReturnSelectedImage_WhenItIsSelected()
{
_addTovarWindow.bitmapToBind = _testBitmap;
_addTovarWindow.GetImagePath.Source = _addTovarWindow.bitmapToBind;
Assert.AreEqual(_testBitmap, _addTovarWindow.GetImagePath.Source);
}
}
}