Skip to content

Commit 16c8d3e

Browse files
[Add] targeted tests to boost coverage (#371)
1 parent c2c6e65 commit 16c8d3e

File tree

10 files changed

+545
-50
lines changed

10 files changed

+545
-50
lines changed

CDP4Common.Tests/Helpers/ValueSetConverterTestFixture.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
namespace CDP4Common.Tests.Helpers
2626
{
2727
using System;
28+
using System.Collections.Generic;
2829
using System.Globalization;
2930

3031
using CDP4Common.Helpers;
@@ -90,6 +91,55 @@ public void VerifyThatValueSetValuesAreCalculatedCorrectly(object value, string
9091
Assert.That(value.ToValueSetString(parameterType), Is.EqualTo(expectedValue2));
9192
}
9293

94+
[Test]
95+
public void VerifyThatEnumerationStringsAreConvertedToDefinitions()
96+
{
97+
var enumerationParameterType = new EnumerationParameterType
98+
{
99+
AllowMultiSelect = true
100+
};
101+
102+
var value1 = new EnumerationValueDefinition { ShortName = "enumValue1" };
103+
var value2 = new EnumerationValueDefinition { ShortName = "enumValue2" };
104+
enumerationParameterType.ValueDefinition.Add(value1);
105+
enumerationParameterType.ValueDefinition.Add(value2);
106+
107+
var result = ValueSetConverter.ToValueSetObject($"enumValue1{Constants.PaddedMultiEnumSeparator}enumValue2", enumerationParameterType);
108+
109+
var convertedValues = result as IList<EnumerationValueDefinition>;
110+
Assert.That(convertedValues, Is.Not.Null);
111+
Assert.That(convertedValues, Has.Count.EqualTo(2));
112+
Assert.That(convertedValues, Does.Contain(value1));
113+
Assert.That(convertedValues, Does.Contain(value2));
114+
}
115+
116+
[Test]
117+
public void VerifyThatBooleanStringsReturnNullableBoolean()
118+
{
119+
var parameterType = new BooleanParameterType();
120+
121+
var result = ValueSetConverter.ToValueSetObject("true", parameterType);
122+
123+
Assert.That(result, Is.EqualTo(true));
124+
}
125+
126+
[Test]
127+
public void VerifyThatDateStringsAreParsedUsingInvariantCulture()
128+
{
129+
var parameterType = new DateParameterType();
130+
131+
var result = ValueSetConverter.ToValueSetObject("2020-09-23", parameterType);
132+
133+
Assert.That(result, Is.EqualTo(new DateTime(2020, 9, 23)));
134+
}
135+
136+
[Test]
137+
public void VerifyThatDefaultObjectReturnsExpectedValues()
138+
{
139+
Assert.That(ValueSetConverter.DefaultObject(new SimpleQuantityKind()), Is.EqualTo("-"));
140+
Assert.That(ValueSetConverter.DefaultObject(new BooleanParameterType()), Is.Null);
141+
}
142+
93143
private static readonly object[] TryParseDoubleTestCases =
94144
{
95145
new object[] { "11", 11, 11, true, new SimpleQuantityKind()},

CDP4Common.Tests/Poco/ElementDefinitionTestFixture.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ namespace CDP4Common.Tests.Poco
3232
using CDP4Common.Exceptions;
3333
using CDP4Common.EngineeringModelData;
3434
using CDP4Common.SiteDirectoryData;
35+
using CDP4Common.Types;
3536

3637
using NUnit.Framework;
3738

@@ -159,6 +160,49 @@ public void VerifyThatModelCodeThrowsExceptionWhenComponentIndexNotZero()
159160
Assert.That(() => elementDefinition.ModelCode(1), Throws.TypeOf<ArgumentException>());
160161
}
161162

163+
[Test]
164+
public void VerifyThatCanBePublishedReflectsContainedItems()
165+
{
166+
var elementDefinition = new ElementDefinition();
167+
Assert.That(elementDefinition.CanBePublished, Is.False);
168+
169+
var parameter = new Parameter();
170+
var valueSet = new ParameterValueSet();
171+
valueSet.ValueSwitch = ParameterSwitchKind.MANUAL;
172+
valueSet.Manual = new ValueArray<string>(new[] { "value" });
173+
valueSet.Published = new ValueArray<string>(new[] { "-" });
174+
parameter.ValueSet.Add(valueSet);
175+
176+
elementDefinition.Parameter.Add(parameter);
177+
178+
Assert.That(elementDefinition.CanBePublished, Is.True);
179+
}
180+
181+
[Test]
182+
public void VerifyThatToBePublishedAggregatesContainedItems()
183+
{
184+
var elementDefinition = new ElementDefinition();
185+
var parameter = new Parameter();
186+
var valueSet = new ParameterValueSet();
187+
valueSet.ValueSwitch = ParameterSwitchKind.MANUAL;
188+
valueSet.Manual = new ValueArray<string>(new[] { "value" });
189+
valueSet.Published = new ValueArray<string>(new[] { "-" });
190+
parameter.ValueSet.Add(valueSet);
191+
elementDefinition.Parameter.Add(parameter);
192+
193+
parameter.ToBePublished = true;
194+
Assert.That(elementDefinition.ToBePublished, Is.True);
195+
196+
parameter.ToBePublished = false;
197+
Assert.That(elementDefinition.ToBePublished, Is.False);
198+
199+
elementDefinition.ToBePublished = true;
200+
Assert.That(parameter.ToBePublished, Is.True);
201+
202+
elementDefinition.ToBePublished = false;
203+
Assert.That(parameter.ToBePublished, Is.False);
204+
}
205+
162206
[Test]
163207
public void VerifyThatGetRequiredRdlsWorks()
164208
{

CDP4Common.Tests/Poco/ParameterSubscriptionValueSetTestFixture.cs

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,17 @@ public void TestGetActualValue()
108108
Assert.That(this.parameterSubscriptionValueSet.ActualValue[0], Is.EqualTo("manual"));
109109
}
110110

111+
[Test]
112+
public void VerifyThatActualValueThrowsWhenSwitchIsUnsupported()
113+
{
114+
this.parameterSubscriptionValueSet.ValueSwitch = (ParameterSwitchKind)99;
115+
116+
Assert.That(() =>
117+
{
118+
var _ = this.parameterSubscriptionValueSet.ActualValue;
119+
}, Throws.TypeOf<InvalidOperationException>().With.Message.EqualTo("Unknown ParameterKindSwitch"));
120+
}
121+
111122
[Test]
112123
public void TestGetActualState()
113124
{
@@ -157,7 +168,7 @@ public void VerifyThatParameterSubscriptionModelCodeReturnsExpectedResult()
157168
[Test]
158169
public void VerifyThatParameterOverrideSubscriptionModelCodeReturnsExpectedResult()
159170
{
160-
var parameterOverride = new ParameterOverride();
171+
var parameterOverride = new ParameterOverride();
161172
this.elementUsage.ParameterOverride.Add(parameterOverride);
162173

163174
var parameterOverrideValueSet = new ParameterOverrideValueSet();
@@ -176,6 +187,14 @@ public void VerifyThatParameterOverrideSubscriptionModelCodeReturnsExpectedResul
176187
Assert.That(subscriptionValueSet.ModelCode(0), Is.EqualTo(@"Sat.battery_1.bool"));
177188
}
178189

190+
[Test]
191+
public void VerifyThatModelCodeThrowsWhenSubscribedValueSetIsUnknown()
192+
{
193+
var subscriptionValueSet = new ParameterSubscriptionValueSet();
194+
195+
Assert.That(() => subscriptionValueSet.ModelCode(0), Throws.TypeOf<NullReferenceException>());
196+
}
197+
179198
[Test]
180199
public void VerifyThatCloneWithCloneValueArrayReturnsCloneWithNewValueArrays()
181200
{
@@ -227,6 +246,52 @@ public void Verify_that_Validate_poco_returns_errors_when_size_of_valuearray_is_
227246
Assert.That(errors.Count(), Is.EqualTo(2));
228247
}
229248

249+
[Test]
250+
public void VerifyThatSampledFunctionValidationRequiresMultiples()
251+
{
252+
var scalarType = new SimpleQuantityKind(Guid.NewGuid(), null, null);
253+
254+
var sampledFunctionParameterType = new SampledFunctionParameterType(Guid.NewGuid(), null, null);
255+
sampledFunctionParameterType.IndependentParameterType.Add(new IndependentParameterTypeAssignment(Guid.NewGuid(), null, null)
256+
{
257+
ParameterType = scalarType
258+
});
259+
sampledFunctionParameterType.DependentParameterType.Add(new DependentParameterTypeAssignment(Guid.NewGuid(), null, null)
260+
{
261+
ParameterType = scalarType
262+
});
263+
264+
var parameter = new Parameter(Guid.NewGuid(), null, null) { ParameterType = sampledFunctionParameterType };
265+
var parameterValueSet = new ParameterValueSet(Guid.NewGuid(), null, null)
266+
{
267+
Published = new ValueArray<string>(new List<string> { "1" }),
268+
Reference = new ValueArray<string>(new List<string> { "1" })
269+
};
270+
271+
parameter.ValueSet.Add(parameterValueSet);
272+
273+
var subscription = new ParameterSubscription(Guid.NewGuid(), null, null);
274+
parameter.ParameterSubscription.Add(subscription);
275+
276+
var subscriptionValueSet = new ParameterSubscriptionValueSet(Guid.NewGuid(), null, null)
277+
{
278+
SubscribedValueSet = parameterValueSet,
279+
Manual = new ValueArray<string>(new List<string> { "1" })
280+
};
281+
282+
subscription.ValueSet.Add(subscriptionValueSet);
283+
284+
subscriptionValueSet.ValidatePoco();
285+
Assert.That(subscriptionValueSet.ValidationErrors.Count(), Is.EqualTo(3));
286+
287+
subscriptionValueSet.Manual = new ValueArray<string>(new List<string> { "1", "2" });
288+
parameterValueSet.Published = new ValueArray<string>(new List<string> { "1", "2" });
289+
parameterValueSet.Reference = new ValueArray<string>(new List<string> { "1", "2" });
290+
291+
subscriptionValueSet.ValidatePoco();
292+
Assert.That(subscriptionValueSet.ValidationErrors, Is.Empty);
293+
}
294+
230295
[Test]
231296
public void Verify_that_Manual_value_can_be_reset()
232297
{

CDP4Common.Tests/Poco/ParameterValueSetBaseTestFixture.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ public void TestGetActualValue()
5656
Assert.That(this.parameterValueSetBase.ActualValue, Is.EqualTo(this.parameterValueSetBase.Manual));
5757
}
5858

59+
[Test]
60+
public void VerifyThatActualValueThrowsWhenSwitchIsUnsupported()
61+
{
62+
this.parameterValueSetBase.ValueSwitch = (ParameterSwitchKind)99;
63+
64+
Assert.That(() =>
65+
{
66+
var _ = this.parameterValueSetBase.ActualValue;
67+
}, Throws.TypeOf<InvalidOperationException>().With.Message.EqualTo("Unknown ParameterKindSwitch: 99"));
68+
}
69+
5970
[Test]
6071
public void TestGetOwner1()
6172
{
@@ -84,8 +95,8 @@ public void TestGetOwnerThrowsEx()
8495
{
8596
Assert.Throws<ContainmentException>(() =>
8697
{
87-
Console.WriteLine(this.parameterValueSetBase.Owner);
98+
Console.WriteLine(this.parameterValueSetBase.Owner);
8899
});
89100
}
90101
}
91-
}
102+
}

CDP4Dal.Tests/DAL/CredentialsTestFixture.cs

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ namespace CDP4Dal.Tests.DAL
2828

2929
using CDP4Dal.DAL;
3030

31+
using CDP4DalCommon.Authentication;
32+
3133
using NUnit.Framework;
3234

3335
/// <summary>
@@ -59,5 +61,84 @@ public void VerifyThatArgumentNullExceptionsAreThrown()
5961

6062
Assert.Throws<ArgumentNullException>(() => new Credentials("John", "a password", null));
6163
}
64+
65+
[Test]
66+
public void VerifyThatProvideUserCredentialsSetsExpectedValues()
67+
{
68+
var credentials = new Credentials(new Uri("http://example.com"));
69+
70+
credentials.ProvideUserCredentials("user", "password", AuthenticationSchemeKind.Basic);
71+
72+
Assert.That(credentials.UserName, Is.EqualTo("user"));
73+
Assert.That(credentials.Password, Is.EqualTo("password"));
74+
Assert.That(credentials.AuthenticationScheme, Is.EqualTo(AuthenticationSchemeKind.Basic));
75+
Assert.That(credentials.IsFullyInitialized, Is.True);
76+
}
77+
78+
[Test]
79+
public void VerifyThatProvideUserCredentialsSupportsLocalJwt()
80+
{
81+
var credentials = new Credentials(new Uri("http://example.com"));
82+
83+
credentials.ProvideUserCredentials("user", "password", AuthenticationSchemeKind.LocalJwtBearer);
84+
85+
Assert.That(credentials.AuthenticationScheme, Is.EqualTo(AuthenticationSchemeKind.LocalJwtBearer));
86+
}
87+
88+
[Test]
89+
public void VerifyThatProvideUserCredentialsThrowsForUnsupportedScheme()
90+
{
91+
var credentials = new Credentials(new Uri("http://example.com"));
92+
93+
Assert.That(() => credentials.ProvideUserCredentials("user", "password", AuthenticationSchemeKind.ExternalJwtBearer),
94+
Throws.TypeOf<ArgumentException>());
95+
}
96+
97+
[Test]
98+
public void VerifyThatProvideUserTokenSetsExpectedValues()
99+
{
100+
var credentials = new Credentials(new Uri("http://example.com"));
101+
var token = new AuthenticationToken("access", "refresh");
102+
103+
credentials.ProvideUserToken(token, AuthenticationSchemeKind.ExternalJwtBearer);
104+
105+
Assert.That(credentials.Token, Is.EqualTo(token));
106+
Assert.That(credentials.AuthenticationScheme, Is.EqualTo(AuthenticationSchemeKind.ExternalJwtBearer));
107+
Assert.That(credentials.IsFullyInitialized, Is.True);
108+
}
109+
110+
[Test]
111+
public void VerifyThatProvideUserTokenValidatesArguments()
112+
{
113+
var credentials = new Credentials(new Uri("http://example.com"));
114+
115+
Assert.That(() => credentials.ProvideUserToken(null, AuthenticationSchemeKind.ExternalJwtBearer),
116+
Throws.TypeOf<ArgumentNullException>());
117+
118+
var token = new AuthenticationToken(string.Empty, string.Empty);
119+
120+
Assert.That(() => credentials.ProvideUserToken(token, AuthenticationSchemeKind.ExternalJwtBearer),
121+
Throws.TypeOf<ArgumentException>());
122+
123+
var validToken = new AuthenticationToken("token", "refresh");
124+
125+
Assert.That(() => credentials.ProvideUserToken(validToken, AuthenticationSchemeKind.Basic),
126+
Throws.TypeOf<ArgumentException>());
127+
}
128+
129+
[Test]
130+
public void VerifyThatIsFullyInitializedRequiresAuthenticationInformation()
131+
{
132+
var credentials = new Credentials(new Uri("http://example.com"));
133+
134+
Assert.That(credentials.IsFullyInitialized, Is.False);
135+
136+
credentials.ProvideUserCredentials("user", "password", AuthenticationSchemeKind.Basic);
137+
Assert.That(credentials.IsFullyInitialized, Is.True);
138+
139+
var tokenCredentials = new Credentials(new Uri("http://example.com"));
140+
tokenCredentials.ProvideUserToken(new AuthenticationToken("access", "refresh"), AuthenticationSchemeKind.LocalJwtBearer);
141+
Assert.That(tokenCredentials.IsFullyInitialized, Is.True);
142+
}
62143
}
63144
}

0 commit comments

Comments
 (0)