-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRestfulApiVersioningOptionsTest.cs
More file actions
88 lines (77 loc) · 4.53 KB
/
Copy pathRestfulApiVersioningOptionsTest.cs
File metadata and controls
88 lines (77 loc) · 4.53 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
81
82
83
84
85
86
87
88
using System;
using Asp.Versioning;
using Codebelt.Extensions.Xunit;
using Cuemon;
using Xunit;
namespace Codebelt.Extensions.Asp.Versioning
{
public class RestfulApiVersioningOptionsTest : Test
{
public RestfulApiVersioningOptionsTest(ITestOutputHelper output) : base(output)
{
}
[Fact]
public void RestfulApiVersioningOptions_ParameterNameIsWithWhitespaceOnly_ShouldThrowInvalidOperationException()
{
var sut1 = new RestfulApiVersioningOptions
{
ParameterName = " "
};
var sut2 = Assert.Throws<InvalidOperationException>(() => sut1.ValidateOptions());
var sut3 = Assert.Throws<ArgumentException>(() => Validator.ThrowIfInvalidOptions(sut1));
Assert.Equal("Operation is not valid due to the current state of the object. (Expression 'Condition.IsNull(ParameterName) || Condition.IsEmpty(ParameterName) || Condition.IsWhiteSpace(ParameterName)')", sut2.Message);
Assert.Equal("RestfulApiVersioningOptions are not in a valid state. (Parameter 'sut1')", sut3.Message);
Assert.IsType<InvalidOperationException>(sut3.InnerException);
}
[Fact]
public void RestfulApiVersioningOptions_ParameterNameIsEmpty_ShouldThrowInvalidOperationException()
{
var sut1 = new RestfulApiVersioningOptions
{
ParameterName = string.Empty
};
var sut2 = Assert.Throws<InvalidOperationException>(() => sut1.ValidateOptions());
var sut3 = Assert.Throws<ArgumentException>(() => Validator.ThrowIfInvalidOptions(sut1));
Assert.Equal("Operation is not valid due to the current state of the object. (Expression 'Condition.IsNull(ParameterName) || Condition.IsEmpty(ParameterName) || Condition.IsWhiteSpace(ParameterName)')", sut2.Message);
Assert.Equal("RestfulApiVersioningOptions are not in a valid state. (Parameter 'sut1')", sut3.Message);
Assert.IsType<InvalidOperationException>(sut3.InnerException);
}
[Fact]
public void RestfulApiVersioningOptions_ParameterNameIsNull_ShouldThrowInvalidOperationException()
{
var sut1 = new RestfulApiVersioningOptions
{
ParameterName = null
};
var sut2 = Assert.Throws<InvalidOperationException>(() => sut1.ValidateOptions());
var sut3 = Assert.Throws<ArgumentException>(() => Validator.ThrowIfInvalidOptions(sut1));
Assert.Equal("Operation is not valid due to the current state of the object. (Expression 'Condition.IsNull(ParameterName) || Condition.IsEmpty(ParameterName) || Condition.IsWhiteSpace(ParameterName)')", sut2.Message);
Assert.Equal("RestfulApiVersioningOptions are not in a valid state. (Parameter 'sut1')", sut3.Message);
Assert.IsType<InvalidOperationException>(sut3.InnerException);
}
[Fact]
public void RestfulApiVersioningOptions_ValidAcceptHeadersIsNull_ShouldThrowInvalidOperationException()
{
var sut1 = new RestfulApiVersioningOptions
{
ValidAcceptHeaders = null
};
var sut2 = Assert.Throws<InvalidOperationException>(() => sut1.ValidateOptions());
var sut3 = Assert.Throws<ArgumentException>(() => Validator.ThrowIfInvalidOptions(sut1));
Assert.Equal("Operation is not valid due to the current state of the object. (Expression 'ValidAcceptHeaders == null')", sut2.Message);
Assert.Equal("RestfulApiVersioningOptions are not in a valid state. (Parameter 'sut1')", sut3.Message);
Assert.IsType<InvalidOperationException>(sut3.InnerException);
}
[Fact]
public void RestfulApiVersioningOptions_ShouldHaveDefaultValues()
{
var sut = new RestfulApiVersioningOptions();
Assert.NotNull(sut.ValidAcceptHeaders);
Assert.True(typeof(CurrentImplementationApiVersionSelector) == sut.ApiVersionSelectorType, "typeof(CurrentImplementationApiVersionSelector) == sut.ApiVersionSelectorType");
//Assert.True(typeof(RestfulProblemDetailsFactory) == sut.ProblemDetailsFactoryType, "typeof(RestfulProblemDetailsFactory) == sut.ProblemDetailsFactoryType");
Assert.Equal(ApiVersion.Default, sut.DefaultApiVersion);
Assert.Equal("v", sut.ParameterName);
Assert.NotNull(sut.Conventions);
}
}
}