Files
Pibd-21_Semin_D.A._SmallSof…/SmallSoftwareProject/SmallSoftwareTests/DataModelsTests/InstallationRequestDataModelTests.cs
2025-03-12 22:39:58 +04:00

88 lines
3.2 KiB
C#

using Microsoft.VisualStudio.TestPlatform.ObjectModel.DataCollection;
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 InstallationRequestDataModelTests
{
[Test]
public void SoftwareIdIsNullOrEmptyTest()
{
var installationRequest = CreateDataModel(null, Guid.NewGuid().ToString(),
10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
installationRequest = CreateDataModel(string.Empty,
Guid.NewGuid().ToString(), 10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void SoftwareIdIsNotGuidTest()
{
var installationRequest = CreateDataModel("softwareId",
Guid.NewGuid().ToString(), 10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void RequestIdIsNullOrEmptyTest()
{
var installationRequest = CreateDataModel(Guid.NewGuid().ToString(), null,
10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
installationRequest = CreateDataModel(string.Empty,
Guid.NewGuid().ToString(), 10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void RequestIdIsNotGuidTest()
{
var installationRequest = CreateDataModel(Guid.NewGuid().ToString(),
"requestId", 10, 10);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void CountIsLessOrZeroTest()
{
var installationRequest = CreateDataModel(Guid.NewGuid().ToString(),
Guid.NewGuid().ToString(), 0, 0);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
installationRequest = CreateDataModel(Guid.NewGuid().ToString(),
Guid.NewGuid().ToString(), -10, -20);
Assert.That(() => installationRequest.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var softwareId = Guid.NewGuid().ToString();
var requestId = Guid.NewGuid().ToString();
var count = 10;
var price = 10;
var installationRequest = CreateDataModel(softwareId, requestId, count, price);
Assert.That(() => installationRequest.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(installationRequest.SoftwareId, Is.EqualTo(softwareId));
Assert.That(installationRequest.RequestId, Is.EqualTo(requestId));
Assert.That(installationRequest.Count, Is.EqualTo(count));
});
}
private static InstallationRequestDataModel CreateDataModel(string? softwareId, string?
requestId, int count, double price) =>
new(softwareId, requestId, count, price);
}