finskaya060525/TestTovarV2/AddTovar.cs
2025-05-30 12:22:56 +03:00

180 lines
5.9 KiB
C#
Raw 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 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);
}
}
}