Files
Pibd-21_Semin_D.A._SmallSof…/SmallSoftwareProject/SmallSoftwareTests/DataModelsTests/SupplySoftwareDataModelTests.cs
2025-04-24 11:19:47 +04:00

80 lines
2.8 KiB
C#

using SmallSoftwareContracts.DataModels;
using SmallSoftwareContracts.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SmallSoftwareTests.DataModelsTests;
[TestFixture]
public class SupplySoftwareDataModelTests
{
[Test]
public void SupplyIdIsNullOrEmptyTest()
{
var supplySoftware = CreateDataModel(null, Guid.NewGuid().ToString(), 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
supplySoftware = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SupplyIdIsNotGuidTest()
{
var supplySoftware = CreateDataModel("invalid-id", Guid.NewGuid().ToString(), 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SoftwareIdIsNullOrEmptyTest()
{
var supplySoftware = CreateDataModel(Guid.NewGuid().ToString(), null, 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
supplySoftware = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SoftwareIdIsNotGuidTest()
{
var supplySoftware = CreateDataModel(Guid.NewGuid().ToString(), "invalid-id", 5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CountIsLessThanOrEqualToZeroTest()
{
var supplySoftware = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
supplySoftware = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -5);
Assert.That(() => supplySoftware.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var supplyId = Guid.NewGuid().ToString();
var softwareId = Guid.NewGuid().ToString();
var count = 10;
var supplySoftware = CreateDataModel(supplyId, softwareId, count);
Assert.That(() => supplySoftware.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(supplySoftware.SupplyId, Is.EqualTo(supplyId));
Assert.That(supplySoftware.SoftwareId, Is.EqualTo(softwareId));
Assert.That(supplySoftware.Count, Is.EqualTo(count));
});
}
private static SupplySoftwareDataModel CreateDataModel(string storageId, string softwareId, int count)
{
return new SupplySoftwareDataModel(storageId, softwareId, count);
}
}