using System; using CandyHouseBase.DataModels; using CandyHouseBase.Enums; using CandyHouseBase.Exceptions; using NUnit.Framework; namespace CandyHouseTests.DataModelsTests { [TestFixture] public class PositionDataModelTests { [Test] public void CreatePositionDataModel_ValidData_ShouldCreateSuccessfully() { var id = Guid.NewGuid().ToString(); var type = PositionType.Cool; var title = "Manager"; var position = new PositionDataModel(id, type, title); Assert.AreEqual(id, position.Id); Assert.AreEqual(type, position.Type); Assert.AreEqual(title, position.Title); } [Test] public void CreatePositionDataModel_InvalidId_ShouldThrowArgumentException() { var invalidId = ""; var type = PositionType.Cool; var title = "Manager"; var item = new PositionDataModel(invalidId, type, title); Assert.Throws(() => item.Validate()); } [Test] public void CreatePositionDataModel_InvalidTitle_ShouldThrowArgumentException() { var id = Guid.NewGuid().ToString(); var type = PositionType.Cool; var invalidTitle = ""; var item = new PositionDataModel(id, type, invalidTitle); Assert.Throws(() => item.Validate()); } [Test] public void CreatePositionDataModel_TitleWithInvalidCharacters_ShouldThrowValidationException() { var id = Guid.NewGuid().ToString(); var type = PositionType.Cool; var invalidTitle = "Manager123"; var item = new PositionDataModel(id, type, invalidTitle); Assert.Throws(() => item.Validate()); } } }