Skip to content

Commit 427f5de

Browse files
committed
update ut case
1 parent 7ed7657 commit 427f5de

3 files changed

Lines changed: 18 additions & 8 deletions

File tree

mdoc/mdoc.Test/MDocUpdaterTests.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -269,25 +269,35 @@ public void Test_RunWithRefStructValidation()
269269
updater.Run(args);
270270

271271
// Assert
272-
var iRefStructProcessorPath = Path.Combine(outputDir, "AllowsRefStructDemo", "IRefStructProcessor`1.xml");
272+
var IRefStructProcessorPath = Path.Combine(outputDir, "AllowsRefStructDemo", "IRefStructProcessor`1.xml");
273273
var refStructHandlerPath = Path.Combine(outputDir, "AllowsRefStructDemo", "RefStructHandler.xml");
274+
var ImmutablePath = Path.Combine(outputDir, "AllowsRefStructDemo", "Immutable.xml");
274275

275-
Assert.IsTrue(File.Exists(iRefStructProcessorPath));
276+
Assert.IsTrue(File.Exists(IRefStructProcessorPath));
276277
Assert.IsTrue(File.Exists(refStructHandlerPath));
277278

278-
var iRefStructProcessorDoc = new XmlDocument();
279-
iRefStructProcessorDoc.Load(iRefStructProcessorPath);
280-
var iRefStructProcessorNode = iRefStructProcessorDoc.SelectSingleNode("//TypeParameters/TypeParameter/Constraints/ParameterAttribute[text()='AllowByRefLike']");
281-
Assert.IsNotNull(iRefStructProcessorNode, "Missing <ParameterAttribute>AllowByRefLike</ParameterAttribute> in IRefStructProcessor`1.xml");
282-
var iRefStructProcessorTypeSignatureNode = iRefStructProcessorDoc.SelectSingleNode("//TypeSignature[@Language='C#' and contains(@Value, 'where T : allows ref struct')]");
283-
Assert.IsNotNull(iRefStructProcessorTypeSignatureNode, "Missing TypeSignature with 'where T : allows ref struct' in IRefStructProcessor`1.xml");
279+
var IRefStructProcessorDoc = new XmlDocument();
280+
IRefStructProcessorDoc.Load(IRefStructProcessorPath);
281+
var IRefStructProcessorNode = IRefStructProcessorDoc.SelectSingleNode("//TypeParameters/TypeParameter/Constraints/ParameterAttribute[text()='AllowByRefLike']");
282+
Assert.IsNotNull(IRefStructProcessorNode, "Missing <ParameterAttribute>AllowByRefLike</ParameterAttribute> in IRefStructProcessor`1.xml");
283+
var IRefStructProcessorTypeSignatureNode = IRefStructProcessorDoc.SelectSingleNode("//TypeSignature[@Language='C#' and contains(@Value, 'where T : allows ref struct')]");
284+
Assert.IsNotNull(IRefStructProcessorTypeSignatureNode, "Missing TypeSignature with 'where T : allows ref struct' in IRefStructProcessor`1.xml");
284285

285286
var refStructHandlerDoc = new XmlDocument();
286287
refStructHandlerDoc.Load(refStructHandlerPath);
287288
var refStructHandlerNode = refStructHandlerDoc.SelectSingleNode("//Members/Member/TypeParameters/TypeParameter/Constraints/ParameterAttribute[text()='AllowByRefLike']");
288289
Assert.IsNotNull(refStructHandlerNode, "Missing <ParameterAttribute>AllowByRefLike</ParameterAttribute> in RefStructHandler.xml");
289290
var refStructHandlerMemberSignatureNode = refStructHandlerDoc.SelectSingleNode("//Members/Member/MemberSignature[@Language='C#' and contains(@Value, 'where T : new(), allows ref struct')]");
290291
Assert.IsNotNull(refStructHandlerMemberSignatureNode, "Missing MemberSignature with 'where T : allows ref struct' in RefStructHandler.xml");
292+
293+
var ImmutableDoc = new XmlDocument();
294+
ImmutableDoc.Load(ImmutablePath);
295+
var constraintsNodes = ImmutableDoc.SelectNodes("//Members/Member/TypeParameters/TypeParameter/Constraints");
296+
Assert.IsTrue(constraintsNodes.Count == 1, "Multiple <Constraints> in Immutable.xml");
297+
var allowByRefLikeNode = ImmutableDoc.SelectSingleNode("//Members/Member/TypeParameters/TypeParameter/Constraints/ParameterAttribute[text()='AllowByRefLike']");
298+
var defaultConstructorNode = ImmutableDoc.SelectSingleNode("//Members/Member/TypeParameters/TypeParameter/Constraints/ParameterAttribute[text()='DefaultConstructorConstraint']");
299+
Assert.IsNotNull(allowByRefLikeNode, "Missing <ParameterAttribute>AllowByRefLike</ParameterAttribute> in Immutable.xml");
300+
Assert.IsNotNull(defaultConstructorNode, "Missing <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> in Immutable.xml");
291301
}
292302
}
293303
}
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)