92 lines
3.5 KiB
C#
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)];
|
|
} |