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