88 lines
3.2 KiB
C#
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);
|
|
}
|