73 lines
2.4 KiB
C#
73 lines
2.4 KiB
C#
using WildPlumContracts.DataModels;
|
|
using WildPlumContracts.Exceptions;
|
|
|
|
namespace WildPlumTests.DataModelTests;
|
|
|
|
[TestFixture]
|
|
public class WarehouseDataModelTests
|
|
{
|
|
[Test]
|
|
public void Validate_ThrowsException_WhenIdIsNullOrEmpty()
|
|
{
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(() => CreateDataModel(null!, "Warehouse Name", "Location").Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
Assert.That(() => CreateDataModel(string.Empty, "Warehouse Name", "Location").Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_ThrowsException_WhenIdIsNotGuid()
|
|
{
|
|
Assert.That(() => CreateDataModel("invalid-guid", "Warehouse Name", "Location").Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_ThrowsException_WhenNameIsNullOrEmpty()
|
|
{
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(() => CreateDataModel(Guid.NewGuid().ToString(), null!, "Location").Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
Assert.That(() => CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "Location").Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_ThrowsException_WhenLocationIsNullOrEmpty()
|
|
{
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(() => CreateDataModel(Guid.NewGuid().ToString(), "Warehouse Name", null!).Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
Assert.That(() => CreateDataModel(Guid.NewGuid().ToString(), "Warehouse Name", string.Empty).Validate(),
|
|
Throws.TypeOf<ValidationException>());
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void AllFieldsAreCorrectTest()
|
|
{
|
|
var id = Guid.NewGuid().ToString();
|
|
var name = "Warehouse Name";
|
|
var location = "Location";
|
|
|
|
var warehouseData = CreateDataModel(id, name, location);
|
|
|
|
Assert.That(() => warehouseData.Validate(), Throws.Nothing);
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(warehouseData.Id, Is.EqualTo(id));
|
|
Assert.That(warehouseData.Name, Is.EqualTo(name));
|
|
Assert.That(warehouseData.Location, Is.EqualTo(location));
|
|
});
|
|
}
|
|
|
|
private static WarehouseDataModel CreateDataModel(string id, string name, string location) =>
|
|
new(id, name, location);
|
|
}
|