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

92 lines
3.5 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]
internal class StorageDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var storage = CreateDataModel(null, "StorageName", "Address", false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
storage = CreateDataModel(string.Empty, "StorageName", "Address", false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var storage = CreateDataModel("invalid-id", "StorageName", "Address", false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void StorageNameIsNullOrEmptyTest()
{
var storage = CreateDataModel(Guid.NewGuid().ToString(), null, "Address", false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
storage = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "Address", false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AddressIsNullOrEmptyTest()
{
var storage = CreateDataModel(Guid.NewGuid().ToString(), "StorageName", null, false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
storage = CreateDataModel(Guid.NewGuid().ToString(), "StorageName", string.Empty, false, CreateSoftwarees());
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SoftwaresIsNullOrEmptyTest()
{
var storage = CreateDataModel(Guid.NewGuid().ToString(), "StorageName", "Address", false, null);
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
storage = CreateDataModel(Guid.NewGuid().ToString(), "StorageName", "Address", false, []);
Assert.That(() => storage.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var storageId = Guid.NewGuid().ToString();
var storageName = "StorageName";
var address = "Address";
var isDeleted = false;
var softwares = CreateSoftwarees();
var storage = CreateDataModel(storageId, storageName, address, isDeleted, softwares);
Assert.That(() => storage.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(storage.Id, Is.EqualTo(storageId));
Assert.That(storage.StorageName, Is.EqualTo(storageName));
Assert.That(storage.Address, Is.EqualTo(address));
Assert.That(storage.IsDeleted, Is.EqualTo(isDeleted));
Assert.That(storage.Softwares, Is.EquivalentTo(softwares));
});
}
private static StorageDataModel CreateDataModel(string? id, string? storageName, string? address, bool isDeleted,
List<StorageSoftwareDataModel> softwares)
{
return new StorageDataModel(id, storageName, address, isDeleted, softwares);
}
private static List<StorageSoftwareDataModel> CreateSoftwarees() => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];
}