185 lines
6.3 KiB
C#
185 lines
6.3 KiB
C#
using Avalonia;
|
|
using Avalonia.Headless;
|
|
using TovarV2;
|
|
using Bitmap = Avalonia.Media.Imaging.Bitmap;
|
|
|
|
namespace TestTovarV2
|
|
{
|
|
[TestFixture]
|
|
public class EditTovarTests
|
|
{
|
|
private EditTovar _editTovarWindow;
|
|
public Bitmap _testBitmap;
|
|
|
|
[OneTimeSetUp]
|
|
public void OneTimeSetup()
|
|
{
|
|
AppBuilder.Configure<App>()
|
|
.UseHeadless(new AvaloniaHeadlessPlatformOptions())
|
|
.SetupWithoutStarting();
|
|
|
|
var emptyPngPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Assets", "picture.png");
|
|
_testBitmap = new Bitmap(emptyPngPath);
|
|
}
|
|
|
|
[OneTimeTearDown]
|
|
public void OneTimeTearDown()
|
|
{
|
|
_testBitmap?.Dispose();
|
|
}
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
ListPr.ListProd.Clear();
|
|
ListPr.ListProd.Add(new Product
|
|
{
|
|
nameProd = "TestProduct",
|
|
priceProd = 1,
|
|
quantityProd = 2,
|
|
bitmapProd = _testBitmap
|
|
});
|
|
ListPr.productForEdit = 0;
|
|
|
|
_editTovarWindow = new EditTovar();
|
|
_editTovarWindow.Show();
|
|
}
|
|
|
|
[TearDown]
|
|
public void TearDown()
|
|
{
|
|
_editTovarWindow.Close();
|
|
}
|
|
|
|
[Test]
|
|
public void IsOpenWindow_ShouldReturnTrue_WhenItOpened()
|
|
{
|
|
Assert.IsTrue(EditTovar.IsOpen);
|
|
_editTovarWindow.Close();
|
|
}
|
|
|
|
[Test]
|
|
public void IsOpenWindow_ShouldReturnFalse_WhenItClosed()
|
|
{
|
|
Assert.IsTrue(EditTovar.IsOpen);
|
|
_editTovarWindow.Close();
|
|
Assert.IsFalse(EditTovar.IsOpen);
|
|
}
|
|
|
|
[Test]
|
|
public void CompareProductData_ShouldReturnTrue_WhenCorrectData()
|
|
{
|
|
Assert.AreEqual("TestProduct", _editTovarWindow.GetNameTov.Text);
|
|
Assert.AreEqual("1", _editTovarWindow.GetPriceTov.Text);
|
|
Assert.AreEqual("2", _editTovarWindow.GetQuantityTov.Text);
|
|
Assert.AreEqual(_testBitmap, _editTovarWindow.GetImagePath.Source);
|
|
}
|
|
|
|
[Test]
|
|
public void EditOkClick_ShouldReturnUpdatedProduct_UpdateProductInList()
|
|
{
|
|
_editTovarWindow.GetNameTov.Text = "NewTestProduct";
|
|
_editTovarWindow.GetPriceTov.Text = "10";
|
|
_editTovarWindow.GetQuantityTov.Text = "20";
|
|
_editTovarWindow.bitmapToBind = _testBitmap;
|
|
|
|
_editTovarWindow.EditOk_Click(null, null);
|
|
|
|
var editedProduct = ListPr.ListProd[ListPr.productForEdit];
|
|
Assert.AreEqual("NewTestProduct", editedProduct.nameProd);
|
|
Assert.AreEqual(10, editedProduct.priceProd);
|
|
Assert.AreEqual(20, editedProduct.quantityProd);
|
|
Assert.AreEqual(_testBitmap, editedProduct.bitmapProd);
|
|
}
|
|
|
|
[Test]
|
|
public void EditOkClick_ShouldReturnUpdatedProduct_WhenNameIsEmpty()
|
|
{
|
|
_editTovarWindow.GetNameTov.Text = "";
|
|
_editTovarWindow.GetPriceTov.Text = "10";
|
|
_editTovarWindow.GetQuantityTov.Text = "20";
|
|
_editTovarWindow.bitmapToBind = _testBitmap;
|
|
|
|
_editTovarWindow.EditOk_Click(null, null);
|
|
|
|
var editedProduct = ListPr.ListProd[ListPr.productForEdit];
|
|
Assert.AreEqual("", editedProduct.nameProd);
|
|
Assert.AreEqual(10, editedProduct.priceProd);
|
|
Assert.AreEqual(20, editedProduct.quantityProd);
|
|
Assert.AreEqual(_testBitmap, editedProduct.bitmapProd);
|
|
}
|
|
|
|
[Test]
|
|
public void EditOkClick_ShouldThrowFormatException_WhenPriceIsEmpty()
|
|
{
|
|
_editTovarWindow.GetNameTov.Text = "NewTestProduct";
|
|
_editTovarWindow.GetPriceTov.Text = "";
|
|
_editTovarWindow.GetQuantityTov.Text = "20";
|
|
_editTovarWindow.bitmapToBind = _testBitmap;
|
|
|
|
var ex = Assert.Throws<FormatException>(() =>
|
|
{
|
|
_editTovarWindow.EditOk_Click(null, null);
|
|
});
|
|
|
|
Assert.That(ex.Message, Does.Contain("input string"));
|
|
}
|
|
|
|
[Test]
|
|
public void EditOkClick_ShouldThrowFormatException_WhenQuantityIsEmpty()
|
|
{
|
|
_editTovarWindow.GetNameTov.Text = "NewTestProduct";
|
|
_editTovarWindow.GetPriceTov.Text = "10";
|
|
_editTovarWindow.GetQuantityTov.Text = "";
|
|
_editTovarWindow.bitmapToBind = _testBitmap;
|
|
|
|
var ex = Assert.Throws<FormatException>(() =>
|
|
{
|
|
_editTovarWindow.EditOk_Click(null, null);
|
|
});
|
|
|
|
Assert.That(ex.Message, Does.Contain("input string"));
|
|
}
|
|
|
|
[Test]
|
|
public void EditOkClick_ShouldReturnUpdatedProduct_WhenImageIsEmpty()
|
|
{
|
|
_editTovarWindow.GetNameTov.Text = "NewTestProduct";
|
|
_editTovarWindow.GetPriceTov.Text = "10";
|
|
_editTovarWindow.GetQuantityTov.Text = "20";
|
|
_editTovarWindow.bitmapToBind = null;
|
|
|
|
_editTovarWindow.EditOk_Click(null, null);
|
|
|
|
var editedProduct = ListPr.ListProd[ListPr.productForEdit];
|
|
Assert.AreEqual("NewTestProduct", editedProduct.nameProd);
|
|
Assert.AreEqual(10, editedProduct.priceProd);
|
|
Assert.AreEqual(20, editedProduct.quantityProd);
|
|
Assert.AreEqual(null, editedProduct.bitmapProd);
|
|
}
|
|
|
|
[Test]
|
|
public void EditTovarConstructor_ShoulInitializeFieldsFromListProd_WhenItOpened()
|
|
{
|
|
ListPr.ListProd = new List<Product>()
|
|
{
|
|
new Product()
|
|
{
|
|
nameProd = "TestProduct",
|
|
priceProd = 100,
|
|
quantityProd = 5,
|
|
bitmapProd = _testBitmap
|
|
}
|
|
};
|
|
ListPr.productForEdit = 0;
|
|
|
|
var editWindow = new EditTovar();
|
|
|
|
Assert.AreEqual("TestProduct", editWindow.GetNameTov.Text);
|
|
Assert.AreEqual("100", editWindow.GetPriceTov.Text);
|
|
Assert.AreEqual("5", editWindow.GetQuantityTov.Text);
|
|
Assert.IsNotNull(editWindow.GetImagePath.Source);
|
|
}
|
|
}
|
|
}
|