163 lines
5.3 KiB
C#
163 lines
5.3 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
|
|
{
|
|
private ProductEdit _productEditWindow;
|
|
public Bitmap _testBitmap;
|
|
|
|
[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 < 4; i++)
|
|
{
|
|
ListPr.ListProd.Add(new Product
|
|
{
|
|
Id = i,
|
|
nameProd = $"Test {i}",
|
|
priceProd = 1 + i,
|
|
quantityProd = 4,
|
|
bitmapProd = _testBitmap
|
|
});
|
|
}
|
|
|
|
ListPr.codeUser = 0;
|
|
|
|
_productEditWindow = new ProductEdit();
|
|
}
|
|
|
|
[Test]
|
|
public void AddToKorzBtnOnClick_ShouldNotAddDuplicate_WhenProductInCart()
|
|
{
|
|
ListPr.productSelects.Add(new ProductSelect
|
|
{
|
|
nameProdKorz = "Test 0"
|
|
});
|
|
|
|
var btn = new Button { Tag = 0 };
|
|
_productEditWindow.AddToKorzBtn_OnClick(btn, null);
|
|
|
|
Assert.That(1 == ListPr.productSelects.Count);
|
|
}
|
|
|
|
[Test]
|
|
public void AddToKorzBtnOnClick_ShouldAddProduct_WhenProductNotInCart()
|
|
{
|
|
var btn = new Button { Tag = 0 };
|
|
_productEditWindow.AddToKorzBtn_OnClick(btn, null);
|
|
|
|
Assert.That(1 == ListPr.productSelects.Count);
|
|
Assert.That("Test 0" == ListPr.productSelects[0].nameProdKorz);
|
|
}
|
|
|
|
[Test]
|
|
public void BtnKorzinaOnClick_ShouldOpenKorzinaWindow_WhenKorzinaEmpty()
|
|
{
|
|
_productEditWindow.BtnKorzina_OnClick(null, null);
|
|
Assert.That(Korzina.IsOpen);
|
|
}
|
|
|
|
[Test]
|
|
public void NextPageOnClick_ShouldReturnLastProducts_WhenProductsInList()
|
|
{
|
|
_productEditWindow.PagesConfig(ListPr.ListProd);
|
|
_productEditWindow.NextPage_OnClick(null, null);
|
|
|
|
Assert.That("Test 2" == _productEditWindow.currentProd[0].nameProd);
|
|
Assert.That("Test 3" == _productEditWindow.currentProd[1].nameProd);
|
|
}
|
|
|
|
[Test]
|
|
public void PrevPageOnClick_ShouldReturnLastProducts_WhenProductsInList()
|
|
{
|
|
_productEditWindow.PagesConfig(ListPr.ListProd);
|
|
_productEditWindow.NextPage_OnClick(null, null);
|
|
_productEditWindow.PrevPage_OnClick(null, null);
|
|
|
|
Assert.That("Test 0" == _productEditWindow.currentProd[0].nameProd);
|
|
Assert.That("Test 1" == _productEditWindow.currentProd[1].nameProd);
|
|
}
|
|
|
|
[Test]
|
|
public void BtnEditTovarOnClick_ShouldOpenEditTovarWindow_WhenProductIsSelected()
|
|
{
|
|
var selectedProduct = ListPr.ListProd[0];
|
|
_productEditWindow.ProdListPublic.SelectedItem = selectedProduct;
|
|
ListPr.productSelects.Clear();
|
|
|
|
_productEditWindow.BtnEditTovar_OnClick(null, null);
|
|
|
|
Assert.That(EditTovar.IsOpen);
|
|
}
|
|
|
|
[Test]
|
|
public void BtnEditTovarOnClick_ShouldThrowArgumentOutOfRangeException_WhenProductIsNotSelected()
|
|
{
|
|
_productEditWindow.ProdListPublic.SelectedItem = null;
|
|
ListPr.productSelects.Clear();
|
|
|
|
var ex = Assert.Throws<ArgumentOutOfRangeException>(() =>
|
|
{
|
|
_productEditWindow.BtnEditTovar_OnClick(null, null);
|
|
});
|
|
|
|
Assert.That(ex.Message, Does.Contain("Index was out of range"));
|
|
}
|
|
|
|
[Test]
|
|
public void DelBtnOnClick_ShouldDeleteProduct_WhenFirstProductIsSelected()
|
|
{
|
|
int initialCount = ListPr.ListProd.Count;
|
|
var delButton = new Button { Tag = 0 };
|
|
|
|
_productEditWindow.DelBtn_Click(delButton, null);
|
|
|
|
Assert.That(initialCount - 1 == ListPr.ListProd.Count);
|
|
}
|
|
|
|
[Test]
|
|
public void DelBtnOnClick_ShouldDeleteProduct_WhenSecondProductIsSelected()
|
|
{
|
|
int initialCount = ListPr.ListProd.Count;
|
|
var delButton = new Button { Tag = 1 };
|
|
|
|
_productEditWindow.DelBtn_Click(delButton, null);
|
|
|
|
Assert.That(initialCount - 1 == ListPr.ListProd.Count);
|
|
}
|
|
|
|
[Test]
|
|
public void BtnInsertOnClick_ShouldOpenAddTovarWindow_WhenButtonIsPressed()
|
|
{
|
|
_productEditWindow.BtnInsert_OnClick(null, null);
|
|
Assert.That(AddTovar.IsOpen);
|
|
}
|
|
|
|
[Test]
|
|
public void BtnVyhodOnClick_ShouldOpenMainWindow_WhenButtonIsPressed()
|
|
{
|
|
_productEditWindow.BtnVyhod_OnClick(null, null);
|
|
|
|
Assert.That(MainWindow.IsOpen);
|
|
}
|
|
}
|
|
}
|