Skip to content
This repository was archived by the owner on Sep 30, 2023. It is now read-only.

Commit ac80e65

Browse files
author
chat
committed
test(TestProjectFile): порефакторил существующие тесты
1 parent b26953b commit ac80e65

File tree

1 file changed

+54
-34
lines changed

1 file changed

+54
-34
lines changed

tests/Cement.Cli.Tests/ParsersTests/TestProjectFile.cs

+54-34
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void TearDown()
3030
[Test]
3131
public void TestCreatingDocument()
3232
{
33-
var content = @"<?xml version=""1.0"" encoding=""utf-8""?>
33+
const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
3434
<Project ToolsVersion=""4.0"" DefaultTargets=""Build"">
3535
<ItemGroup>
3636
<Reference Include=""log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"">
@@ -47,15 +47,18 @@ public void TestCreatingDocument()
4747
</Project>
4848
";
4949
var proj = CreateProjectFile(content);
50-
XmlNode refXml;
51-
Assert.IsTrue(proj.ContainsRef("log4net", out refXml));
52-
Assert.IsFalse(proj.ContainsRef("logging", out refXml));
50+
51+
Assert.Multiple(() =>
52+
{
53+
Assert.That(proj.ContainsRef("log4net", out _), Is.True);
54+
Assert.That(proj.ContainsRef("logging", out _), Is.False);
55+
});
5356
}
5457

5558
[Test]
5659
public void TestAddReference()
5760
{
58-
var content = @"<?xml version=""1.0"" encoding=""utf-8""?>
61+
const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
5962
<Project ToolsVersion=""4.0"" DefaultTargets=""Build"">
6063
<ItemGroup>
6164
<Reference Include=""log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"">
@@ -71,31 +74,39 @@ public void TestAddReference()
7174
</ItemGroup>
7275
</Project>
7376
";
74-
XmlNode refXml;
7577
var proj = CreateProjectFile(content);
78+
7679
proj.AddRef("logging", "abc/def");
77-
Assert.IsTrue(proj.ContainsRef("logging", out refXml));
78-
Assert.AreEqual("abc/def", refXml.LastChild.InnerText);
80+
81+
Assert.Multiple(() =>
82+
{
83+
Assert.That(proj.ContainsRef("logging", out var refXml), Is.True);
84+
Assert.That(refXml.LastChild!.InnerText, Is.EqualTo("abc/def"));
85+
});
7986
}
8087

8188
[Test]
8289
public void TestAddReferenceInEmptyProject()
8390
{
84-
var content = @"<?xml version=""1.0"" encoding=""utf-8""?>
91+
const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
8592
<Project ToolsVersion=""4.0"" DefaultTargets=""Build"">
8693
</Project>
8794
";
88-
XmlNode refXml;
8995
var proj = CreateProjectFile(content);
96+
9097
proj.AddRef("logging", "abc/def");
91-
Assert.IsTrue(proj.ContainsRef("logging", out refXml));
92-
Assert.AreEqual("abc/def", refXml.LastChild.InnerText);
98+
99+
Assert.Multiple(() =>
100+
{
101+
Assert.That(proj.ContainsRef("logging", out var refXml), Is.True);
102+
Assert.That(refXml.LastChild!.InnerText, Is.EqualTo("abc/def"));
103+
});
93104
}
94105

95106
[Test]
96107
public void TestAddReferenceReferenceNotFirst()
97108
{
98-
var content = @"<?xml version=""1.0"" encoding=""utf-8""?>
109+
const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
99110
<Project ToolsVersion=""4.0"" DefaultTargets=""Build"">
100111
<ItemGroup />
101112
<ItemGroup>
@@ -113,17 +124,21 @@ public void TestAddReferenceReferenceNotFirst()
113124
</ItemGroup>
114125
</Project>
115126
";
116-
XmlNode refXml;
117127
var proj = CreateProjectFile(content);
128+
118129
proj.AddRef("logging", "abc/def");
119-
Assert.IsTrue(proj.ContainsRef("logging", out refXml));
120-
Assert.AreEqual("abc/def", refXml.LastChild.InnerText);
130+
131+
Assert.Multiple(() =>
132+
{
133+
Assert.That(proj.ContainsRef("logging", out var refXml), Is.True);
134+
Assert.That(refXml.LastChild!.InnerText, Is.EqualTo("abc/def"));
135+
});
121136
}
122137

123138
[Test]
124139
public void TestReplaceReferencePath()
125140
{
126-
var content = @"<?xml version=""1.0"" encoding=""utf-8""?>
141+
const string content = @"<?xml version=""1.0"" encoding=""utf-8""?>
127142
<Project ToolsVersion=""4.0"" DefaultTargets=""Build"">
128143
<ItemGroup>
129144
<Reference Include=""log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"">
@@ -139,11 +154,15 @@ public void TestReplaceReferencePath()
139154
</ItemGroup>
140155
</Project>
141156
";
142-
XmlNode refXml;
143157
var proj = CreateProjectFile(content);
158+
144159
proj.ReplaceRef("log4net", "abc/def");
145-
Assert.IsTrue(proj.ContainsRef("log4net", out refXml));
146-
Assert.AreEqual("abc/def", refXml.LastChild.InnerText);
160+
161+
Assert.Multiple(() =>
162+
{
163+
Assert.That(proj.ContainsRef("log4net", out var refXml), Is.True);
164+
Assert.That(refXml.LastChild!.InnerText, Is.EqualTo("abc/def"));
165+
});
147166
}
148167

149168
[TestCase(DefaultOldCsprojXml, TestName = "OldCsprojFormat")]
@@ -156,7 +175,7 @@ public void Constructor_GetXmlFromFile_IfFileExist(string csprojXml)
156175
}
157176

158177
[Test]
159-
public void Costructor_ThrowException_IfFileNotExist()
178+
public void Constructor_ThrowException_IfFileNotExist()
160179
{
161180
var nullName = Guid.NewGuid().ToString();
162181
var nullPath = Path.Combine(workDirectory.Path, $"{nullName}.csproj");
@@ -206,15 +225,15 @@ public void BindRuleset_MoveOldRulesetBindings_FromProjectFileToRulesetFile(stri
206225
}
207226

208227
[Test]
209-
public void AddAnalyzer_CreateItemGroupForAnalyzers_IfNotExists()
228+
public void AddAnalyzer_CreateItemGroupForAnalyzers_IfNotExists_ForOldCsprojFormat()
210229
{
211230
var analyzerDllPath = Path.Combine(workDirectory.Path, $"{Guid.NewGuid()}.dll");
212-
var csprojContent = @"<?xml version=""1.0"" encoding=""utf-8""?><Project ToolsVersion=""14.0"" DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""></Project>";
231+
const string csprojContent = @"<?xml version=""1.0"" encoding=""utf-8""?><Project ToolsVersion=""14.0"" DefaultTargets=""Build"" xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""></Project>";
213232
var projectFile = CreateProjectFile(csprojContent);
214233

215234
projectFile.AddAnalyzer(analyzerDllPath);
216235

217-
Assert.NotNull(SearchByXpath(projectFile.Document, "//a:ItemGroup[a:Analyzer]").Single());
236+
Assert.That(SearchByXpath(projectFile.Document, "//a:ItemGroup[a:Analyzer]").Single(), Is.Not.Null);
218237
}
219238

220239
[Test]
@@ -260,8 +279,7 @@ public void AddAnalyzer_NotAddAnalyzersDll_IfDllWithSomeNameAlreadyAdded(string
260279
[Test]
261280
public void TestMakeCsProjWithNugetReferences()
262281
{
263-
var content = @"<Project Sdk=""Microsoft.NET.Sdk"">
264-
282+
const string content = @"<Project Sdk=""Microsoft.NET.Sdk"">
265283
<PropertyGroup>
266284
<TargetFramework>netstandard2.0</TargetFramework>
267285
<RootNamespace>Vostok.Clusterclient</RootNamespace>
@@ -281,13 +299,15 @@ public void TestMakeCsProjWithNugetReferences()
281299
</Reference>
282300
</ItemGroup>
283301
</Project>
284-
";
302+
";
285303

286304
var proj = CreateProjectFile(content);
287305
var xmlDocument = proj.CreateCsProjWithNugetReferences(new List<Dep> {new("vostok.core")}, true);
288-
289-
Assert.Null(xmlDocument.SelectSingleNode("//Reference[@Include='Vostok.Core']"));
290-
Assert.NotNull(xmlDocument.SelectSingleNode("//PackageReference[@Include='vostok.core']"));
306+
Assert.Multiple(() =>
307+
{
308+
Assert.That(xmlDocument.SelectSingleNode("//Reference[@Include='Vostok.Core']"), Is.Null);
309+
Assert.That(xmlDocument.SelectSingleNode("//PackageReference[@Include='vostok.core']"), Is.Not.Null);
310+
});
291311
}
292312

293313
private ProjectFile CreateProjectFile(string projectFileContent)
@@ -309,15 +329,15 @@ private string CreateProjectFilePath()
309329
return projectFilePath;
310330
}
311331

312-
private string WithoutXmlFormatting(string xml) => new Regex(">\\s+<").Replace(xml, "><");
332+
private static string WithoutXmlFormatting(string xml) => new Regex(">\\s+<").Replace(xml, "><");
313333

314-
private List<XmlNode> SearchByXpath(XmlDocument xmlDocument, string xpath)
334+
private static List<XmlNode> SearchByXpath(XmlDocument xmlDocument, string xpath)
315335
{
316-
var namespaceUri = xmlDocument.DocumentElement.NamespaceURI;
336+
var namespaceUri = xmlDocument.DocumentElement!.NamespaceURI;
317337
var nsmgr = new XmlNamespaceManager(xmlDocument.NameTable);
318338
nsmgr.AddNamespace("a", namespaceUri);
319339
var result = xmlDocument
320-
.SelectNodes(xpath, nsmgr)
340+
.SelectNodes(xpath, nsmgr)!
321341
.Cast<XmlNode>()
322342
.ToList();
323343
return result;

0 commit comments

Comments
 (0)