-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathValidateableTests.cs
More file actions
80 lines (75 loc) · 2.8 KB
/
ValidateableTests.cs
File metadata and controls
80 lines (75 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//This file is part of AudioCuesheetEditor.
//AudioCuesheetEditor is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//AudioCuesheetEditor is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//You should have received a copy of the GNU General Public License
//along with Foobar. If not, see
//<http: //www.gnu.org/licenses />.
using AudioCuesheetEditor.Model.Entity;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
namespace AudioCuesheetEditor.Tests.Model.Entity
{
public class ValidateableTestClass : Validateable
{
private string? testProperty;
private int? testProperty2;
public string? TestProperty
{
get => testProperty;
set
{
testProperty = value;
OnValidateablePropertyChanged();
}
}
public int? TestProperty2
{
get => testProperty2;
set
{
testProperty2 = value;
OnValidateablePropertyChanged();
}
}
public override ValidationResult Validate(string property)
{
ValidationStatus validationStatus = ValidationStatus.NoValidation;
List<ValidationMessage>? validationMessages = null;
switch (property)
{
case nameof(TestProperty):
validationStatus = ValidationStatus.Success;
if (string.IsNullOrEmpty(TestProperty))
{
validationMessages ??= [];
validationMessages.Add(new ValidationMessage("{0} has no value!", nameof(TestProperty)));
}
break;
}
return ValidationResult.Create(validationStatus, validationMessages);
}
}
[TestClass()]
public class ValidateableTests
{
[TestMethod()]
public void ValidateTest()
{
var testObject = new ValidateableTestClass
{
TestProperty = string.Empty
};
Assert.AreEqual(ValidationStatus.Error, testObject.Validate().Status);
Assert.IsNotNull(testObject.Validate().ValidationMessages);
Assert.AreEqual(1, testObject.Validate().ValidationMessages?.Count);
testObject.TestProperty = "Test";
Assert.AreEqual(ValidationStatus.Success, testObject.Validate().Status);
}
}
}