188 lines
6.0 KiB
C#
188 lines
6.0 KiB
C#
![]() |
using Avalonia.Controls;
|
||
|
using TovarV2;
|
||
|
using Avalonia;
|
||
|
using Avalonia.Headless;
|
||
|
using Avalonia.Input;
|
||
|
using Avalonia.Media.Imaging;
|
||
|
|
||
|
namespace TestTovarV2
|
||
|
{
|
||
|
[TestFixture]
|
||
|
public class ProductEditTests
|
||
|
{
|
||
|
public Bitmap _testBitmap;
|
||
|
private ProductEdit _productWindow;
|
||
|
|
||
|
[OneTimeSetUp]
|
||
|
public void OneTimeSetup()
|
||
|
{
|
||
|
AppBuilder.Configure<App>()
|
||
|
.UseHeadless(new AvaloniaHeadlessPlatformOptions())
|
||
|
.SetupWithoutStarting();
|
||
|
}
|
||
|
|
||
|
[SetUp]
|
||
|
public void Setup()
|
||
|
{
|
||
|
ListPr.ListProd.Clear();
|
||
|
ListPr.productSelects.Clear();
|
||
|
|
||
|
for (int i = 0; i < 5; i++)
|
||
|
{
|
||
|
ListPr.ListProd.Add(new Product
|
||
|
{
|
||
|
Id = i,
|
||
|
nameProd = $"Product {i}",
|
||
|
priceProd = 10 + i,
|
||
|
quantityProd = 5,
|
||
|
bitmapProd = _testBitmap
|
||
|
});
|
||
|
}
|
||
|
|
||
|
ListPr.codeUser = 0;
|
||
|
|
||
|
_productWindow = new ProductEdit();
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void NextPageOnClick_ShouldReturnLastTwoProducts_WhenFiveProductsInList()
|
||
|
{
|
||
|
_productWindow.PagesConfig(ListPr.ListProd);
|
||
|
_productWindow.NextPage_OnClick(null, null);
|
||
|
|
||
|
Assert.AreEqual("Product 2", _productWindow.currentProd[0].nameProd);
|
||
|
}
|
||
|
[Test]
|
||
|
public void PrevPageOnClick_ShouldReturnLastTwoProducts_WhenFiveProductsInList()
|
||
|
{
|
||
|
_productWindow.PagesConfig(ListPr.ListProd);
|
||
|
_productWindow.NextPage_OnClick(null, null);
|
||
|
_productWindow.PrevPage_OnClick(null, null);
|
||
|
|
||
|
Assert.AreEqual("Product 0", _productWindow.currentProd[0].nameProd);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void DelBtnOnClick_ShouldRemoveProduct_WhenFirstProductIsSelected()
|
||
|
{
|
||
|
int initialCount = ListPr.ListProd.Count;
|
||
|
|
||
|
var delButton = new Button { Tag = 0 };
|
||
|
_productWindow.DelBtn_Click(delButton, null);
|
||
|
|
||
|
Assert.AreEqual(initialCount - 1, ListPr.ListProd.Count);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void DelBtnOnClick_ShouldRemoveProduct_WhenSecondProductIsSelected()
|
||
|
{
|
||
|
int initialCount = ListPr.ListProd.Count;
|
||
|
|
||
|
var delButton = new Button { Tag = 1 };
|
||
|
_productWindow.DelBtn_Click(delButton, null);
|
||
|
|
||
|
Assert.AreEqual(initialCount - 1, ListPr.ListProd.Count);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void DelBtnOnClick_ShouldThrowArgumentOutOfRangeException_WhenSixProductIsSelected()
|
||
|
{
|
||
|
var delButton = new Button { Tag = 5 };
|
||
|
|
||
|
var ex = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||
|
{
|
||
|
_productWindow.DelBtn_Click(delButton, null);
|
||
|
});
|
||
|
|
||
|
Assert.That(ex.Message, Does.Contain("Index was out of range"));
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnInsertOnClick_ShouldOpenAddTovarWindow_WhenItIsPressed()
|
||
|
{
|
||
|
_productWindow.BtnInsert_OnClick(null, null);
|
||
|
Assert.IsTrue(AddTovar.IsOpen);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnEditTovarOnClick_ShouldOpenEditTovarWindow_WhenProductIsSelected()
|
||
|
{
|
||
|
var selectedProduct = ListPr.ListProd[0];
|
||
|
_productWindow.ProdListPublic.SelectedItem = selectedProduct;
|
||
|
|
||
|
ListPr.productSelects.Clear();
|
||
|
|
||
|
_productWindow.BtnEditTovar_OnClick(null, null);
|
||
|
|
||
|
Assert.IsTrue(EditTovar.IsOpen, "EditTovar window should be open.");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnEditTovarOnClick_ShouldThrowArgumentOutOfRangeException_WhenNoProductIsSelected()
|
||
|
{
|
||
|
_productWindow.ProdListPublic.SelectedItem = null;
|
||
|
ListPr.productSelects.Clear();
|
||
|
|
||
|
var ex = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
||
|
{
|
||
|
_productWindow.BtnEditTovar_OnClick(null, null);
|
||
|
});
|
||
|
|
||
|
Assert.That(ex.Message, Does.Contain("Index was out of range"));
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void AddToKorzBtnOnClick_ShouldAddProduct_WhenNotAlreadyInCart()
|
||
|
{
|
||
|
var btn = new Button { Tag = 0 };
|
||
|
_productWindow.AddToKorzBtn_OnClick(btn, null);
|
||
|
|
||
|
Assert.AreEqual(1, ListPr.productSelects.Count);
|
||
|
Assert.AreEqual("Product 0", ListPr.productSelects[0].nameProdKorz);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void AddToKorzBtnOnClick_ShouldNotAddDuplicate_WhenProductAlreadyInCart()
|
||
|
{
|
||
|
ListPr.productSelects.Add(new ProductSelect
|
||
|
{
|
||
|
nameProdKorz = "Product 0"
|
||
|
});
|
||
|
|
||
|
var btn = new Button { Tag = 0 };
|
||
|
_productWindow.AddToKorzBtn_OnClick(btn, null);
|
||
|
|
||
|
Assert.AreEqual(1, ListPr.productSelects.Count);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnKorzinaOnClick_ShouldOpenKorzinaWindow_WhenKorzinaIsEmpty()
|
||
|
{
|
||
|
_productWindow.BtnKorzina_OnClick(null, null);
|
||
|
Assert.IsTrue(Korzina.IsOpen);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnKorzinaOnClick_ShouldOpenKorzinaWindow_WhenKorzinaIsNotEmpty()
|
||
|
{
|
||
|
ListPr.productSelects.Clear();
|
||
|
ListPr.productSelects.Add(new ProductSelect
|
||
|
{
|
||
|
nameProdKorz = "Товар 1",
|
||
|
quantitySelect = 1,
|
||
|
priceProdKorz = 100
|
||
|
});
|
||
|
|
||
|
_productWindow.BtnKorzina_OnClick(null, null);
|
||
|
Assert.IsTrue(Korzina.IsOpen);
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void BtnVyhodOnClick_ShouldOpenMainWindow_WhenItIsPressed()
|
||
|
{
|
||
|
_productWindow.BtnVyhod_OnClick(null, null);
|
||
|
Assert.IsTrue(MainWindow.IsOpen);
|
||
|
}
|
||
|
}
|
||
|
}
|