2025-02-13 12:34:39 +04:00

71 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WildPlum.DataModels;
namespace WildPlumTests.DataModelsTests;
[TestFixture]
internal class ProductWarehouseDataModelTests
{
[Test]
public void ProductIdIsNullOrEmptyTest()
{
var productWarehouse = CreateDataModel(null, Guid.NewGuid().ToString(), 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
productWarehouse = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ProductIdIsNotGuidTest()
{
var productWarehouse = CreateDataModel("id", Guid.NewGuid().ToString(), 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void WarehouseIdIsNullOrEmptyTest()
{
var productWarehouse = CreateDataModel(Guid.NewGuid().ToString(), null, 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
productWarehouse = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void WarehouseIdIsNotGuidTest()
{
var productWarehouse = CreateDataModel(Guid.NewGuid().ToString(), "warehouse", 1);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
}
public void CountNotCorrectTest()
{
var productWarehouse = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10);
Assert.That(() => productWarehouse.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var warehouseId = Guid.NewGuid().ToString();
var productId = Guid.NewGuid().ToString();
var count = 10;
var orderProduct = CreateDataModel(productId, warehouseId, count);
Assert.That(() => orderProduct.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(orderProduct.ProductId, Is.EqualTo(productId));
Assert.That(orderProduct.WarehouseId, Is.EqualTo(warehouseId));
Assert.That(orderProduct.Count, Is.EqualTo(count));
});
}
private static ProductWarehouseDataModel CreateDataModel(string? productId, string? warehouseId, int count) =>
new(productId, warehouseId, count);
}