diff options
| author | Rob Mensching <rob@firegiant.com> | 2021-04-22 06:01:58 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2021-04-29 16:22:59 -0700 |
| commit | 9e83fcb193e2358b21f6caa10b1fc9f6059018b0 (patch) | |
| tree | 64fa2c78f1d8c332b2baa18b3a1a1cc477a47ec0 /src/test | |
| parent | e51932ea0bac331b128dba9809f00c7d393c7a9b (diff) | |
| download | wix-9e83fcb193e2358b21f6caa10b1fc9f6059018b0.tar.gz wix-9e83fcb193e2358b21f6caa10b1fc9f6059018b0.tar.bz2 wix-9e83fcb193e2358b21f6caa10b1fc9f6059018b0.zip | |
Move Data into API/wix
Diffstat (limited to 'src/test')
5 files changed, 0 insertions, 711 deletions
diff --git a/src/test/WixToolsetTest.Data/SerializeFixture.cs b/src/test/WixToolsetTest.Data/SerializeFixture.cs deleted file mode 100644 index 8a65c2d4..00000000 --- a/src/test/WixToolsetTest.Data/SerializeFixture.cs +++ /dev/null | |||
| @@ -1,427 +0,0 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolsetTest.Data | ||
| 4 | { | ||
| 5 | using System; | ||
| 6 | using System.IO; | ||
| 7 | using System.Linq; | ||
| 8 | using WixToolset.Data; | ||
| 9 | using WixToolset.Data.Bind; | ||
| 10 | using WixToolset.Data.Symbols; | ||
| 11 | using WixToolset.Data.WindowsInstaller.Rows; | ||
| 12 | using Xunit; | ||
| 13 | |||
| 14 | using Wid = WixToolset.Data.WindowsInstaller; | ||
| 15 | |||
| 16 | public class SerializeFixture | ||
| 17 | { | ||
| 18 | [Fact] | ||
| 19 | public void CanSaveAndLoadIntermediate() | ||
| 20 | { | ||
| 21 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 22 | |||
| 23 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 24 | |||
| 25 | section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) | ||
| 26 | { | ||
| 27 | ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), | ||
| 28 | DirectoryRef = "TestFolder", | ||
| 29 | Location = ComponentLocation.Either, | ||
| 30 | }); | ||
| 31 | |||
| 32 | var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); | ||
| 33 | |||
| 34 | intermediate.UpdateLevel(IntermediateLevels.Linked); | ||
| 35 | intermediate.UpdateLevel(IntermediateLevels.Resolved); | ||
| 36 | |||
| 37 | var path = Path.GetTempFileName(); | ||
| 38 | try | ||
| 39 | { | ||
| 40 | intermediate.Save(path); | ||
| 41 | |||
| 42 | var loaded = Intermediate.Load(path); | ||
| 43 | |||
| 44 | Assert.True(loaded.HasLevel(IntermediateLevels.Compiled)); | ||
| 45 | Assert.True(loaded.HasLevel(IntermediateLevels.Linked)); | ||
| 46 | Assert.True(loaded.HasLevel(IntermediateLevels.Resolved)); | ||
| 47 | |||
| 48 | var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); | ||
| 49 | |||
| 50 | Assert.Equal("TestComponent", symbol.Id.Id); | ||
| 51 | Assert.Equal(AccessModifier.Global, symbol.Id.Access); | ||
| 52 | Assert.Equal("TestFolder", symbol.DirectoryRef); | ||
| 53 | Assert.Equal(ComponentLocation.Either, symbol.Location); | ||
| 54 | } | ||
| 55 | finally | ||
| 56 | { | ||
| 57 | File.Delete(path); | ||
| 58 | } | ||
| 59 | } | ||
| 60 | |||
| 61 | [Fact] | ||
| 62 | public void CanUpdateIntermediate() | ||
| 63 | { | ||
| 64 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 65 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 66 | |||
| 67 | section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) | ||
| 68 | { | ||
| 69 | ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), | ||
| 70 | DirectoryRef = "TestFolder", | ||
| 71 | Location = ComponentLocation.Either, | ||
| 72 | }); | ||
| 73 | |||
| 74 | var intermediate = new Intermediate("TestIntermediate", IntermediateLevels.Compiled, new[] { section }, null); | ||
| 75 | |||
| 76 | var path = Path.GetTempFileName(); | ||
| 77 | try | ||
| 78 | { | ||
| 79 | intermediate.Save(path); | ||
| 80 | |||
| 81 | var uri = new Uri(Path.GetFullPath(path)); | ||
| 82 | var stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite); | ||
| 83 | |||
| 84 | using (var wixout = WixOutput.Read(uri, stream)) | ||
| 85 | { | ||
| 86 | var loaded = Intermediate.Load(wixout); | ||
| 87 | var symbol = (ComponentSymbol)loaded.Sections.Single().Symbols.Single(); | ||
| 88 | |||
| 89 | Assert.Equal("TestComponent", symbol.Id.Id); | ||
| 90 | Assert.Equal(AccessModifier.Global, symbol.Id.Access); | ||
| 91 | |||
| 92 | wixout.Reopen(writable: true); | ||
| 93 | |||
| 94 | section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "NewComponent")) | ||
| 95 | { | ||
| 96 | ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), | ||
| 97 | }); | ||
| 98 | |||
| 99 | intermediate.Save(wixout); | ||
| 100 | loaded = Intermediate.Load(wixout); | ||
| 101 | |||
| 102 | var newSymbol = loaded.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); | ||
| 103 | Assert.Single(newSymbol); | ||
| 104 | } | ||
| 105 | |||
| 106 | var loadedAfterDispose = Intermediate.Load(path); | ||
| 107 | var newSymbolStillThere = loadedAfterDispose.Sections.Single().Symbols.Where(t => t.Id.Id == "NewComponent"); | ||
| 108 | Assert.Single(newSymbolStillThere); | ||
| 109 | |||
| 110 | } | ||
| 111 | finally | ||
| 112 | { | ||
| 113 | File.Delete(path); | ||
| 114 | } | ||
| 115 | } | ||
| 116 | |||
| 117 | [Fact] | ||
| 118 | public void CanSaveAndLoadIntermediateWithCustomDefinitions() | ||
| 119 | { | ||
| 120 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 121 | |||
| 122 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 123 | |||
| 124 | var fieldDefs = new[] | ||
| 125 | { | ||
| 126 | new IntermediateFieldDefinition("A", IntermediateFieldType.String), | ||
| 127 | new IntermediateFieldDefinition("B", IntermediateFieldType.Number), | ||
| 128 | new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), | ||
| 129 | }; | ||
| 130 | |||
| 131 | var symbolDef = new IntermediateSymbolDefinition("CustomDef2", fieldDefs, null); | ||
| 132 | |||
| 133 | var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); | ||
| 134 | symbol.Set(0, "foo"); | ||
| 135 | symbol.Set(1, 2); | ||
| 136 | symbol.Set(2, true); | ||
| 137 | |||
| 138 | section.AddSymbol(symbol); | ||
| 139 | |||
| 140 | var intermediate = new Intermediate("TestIntermediate", new[] { section }, null); | ||
| 141 | |||
| 142 | var path = Path.GetTempFileName(); | ||
| 143 | try | ||
| 144 | { | ||
| 145 | intermediate.Save(path); | ||
| 146 | |||
| 147 | var loaded = Intermediate.Load(path); | ||
| 148 | var loadedSection = loaded.Sections.Single(); | ||
| 149 | var loadedSymbol = loadedSection.Symbols.Single(); | ||
| 150 | |||
| 151 | Assert.Equal("foo", loadedSymbol.AsString(0)); | ||
| 152 | Assert.Equal(2, loadedSymbol[1].AsNumber()); | ||
| 153 | Assert.True(loadedSymbol[2].AsBool()); | ||
| 154 | } | ||
| 155 | finally | ||
| 156 | { | ||
| 157 | File.Delete(path); | ||
| 158 | } | ||
| 159 | } | ||
| 160 | |||
| 161 | [Fact] | ||
| 162 | public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitions() | ||
| 163 | { | ||
| 164 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 165 | |||
| 166 | // Intermediate #1 | ||
| 167 | var fieldDefs = new[] | ||
| 168 | { | ||
| 169 | new IntermediateFieldDefinition("A", IntermediateFieldType.String), | ||
| 170 | new IntermediateFieldDefinition("B", IntermediateFieldType.Number), | ||
| 171 | new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), | ||
| 172 | }; | ||
| 173 | |||
| 174 | var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); | ||
| 175 | |||
| 176 | var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); | ||
| 177 | symbol.Set(0, "foo"); | ||
| 178 | symbol.Set(1, 2); | ||
| 179 | symbol.Set(2, true); | ||
| 180 | |||
| 181 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 182 | section.AddSymbol(symbol); | ||
| 183 | |||
| 184 | var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); | ||
| 185 | |||
| 186 | // Intermediate #2 | ||
| 187 | var fieldDefs2 = new[] | ||
| 188 | { | ||
| 189 | new IntermediateFieldDefinition("A", IntermediateFieldType.String), | ||
| 190 | new IntermediateFieldDefinition("B", IntermediateFieldType.Number), | ||
| 191 | new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), | ||
| 192 | new IntermediateFieldDefinition("D", IntermediateFieldType.String), | ||
| 193 | }; | ||
| 194 | |||
| 195 | var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); | ||
| 196 | |||
| 197 | var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); | ||
| 198 | symbol2.Set(0, "bar"); | ||
| 199 | symbol2.Set(1, 3); | ||
| 200 | symbol2.Set(2, false); | ||
| 201 | symbol2.Set(3, "baz"); | ||
| 202 | |||
| 203 | var section2 = new IntermediateSection("test2", SectionType.Fragment); | ||
| 204 | section2.AddSymbol(symbol2); | ||
| 205 | |||
| 206 | var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); | ||
| 207 | |||
| 208 | // Save | ||
| 209 | var path1 = Path.GetTempFileName(); | ||
| 210 | var path2 = Path.GetTempFileName(); | ||
| 211 | try | ||
| 212 | { | ||
| 213 | intermediate1.Save(path1); | ||
| 214 | intermediate2.Save(path2); | ||
| 215 | |||
| 216 | var loaded = Intermediate.Load(new[] { path1, path2 }); | ||
| 217 | |||
| 218 | var loaded1 = loaded.First(); | ||
| 219 | var loaded2 = loaded.Skip(1).Single(); | ||
| 220 | |||
| 221 | var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); | ||
| 222 | var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); | ||
| 223 | |||
| 224 | Assert.Equal("foo", loadedSymbol1.AsString(0)); | ||
| 225 | Assert.Equal(2, loadedSymbol1[1].AsNumber()); | ||
| 226 | Assert.True(loadedSymbol1[2].AsBool()); | ||
| 227 | |||
| 228 | Assert.Equal("bar", loadedSymbol2.AsString(0)); | ||
| 229 | Assert.Equal(3, loadedSymbol2[1].AsNumber()); | ||
| 230 | Assert.False(loadedSymbol2[2].AsBool()); | ||
| 231 | Assert.Equal("baz", loadedSymbol2.AsString(3)); | ||
| 232 | } | ||
| 233 | finally | ||
| 234 | { | ||
| 235 | File.Delete(path2); | ||
| 236 | File.Delete(path1); | ||
| 237 | } | ||
| 238 | } | ||
| 239 | |||
| 240 | [Fact] | ||
| 241 | public void CanSaveAndLoadMultipleIntermediateWithCustomDefinitionsAndTags() | ||
| 242 | { | ||
| 243 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 244 | |||
| 245 | // Intermediate #1 | ||
| 246 | var fieldDefs = new[] | ||
| 247 | { | ||
| 248 | new IntermediateFieldDefinition("A", IntermediateFieldType.String), | ||
| 249 | new IntermediateFieldDefinition("B", IntermediateFieldType.Number), | ||
| 250 | new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), | ||
| 251 | }; | ||
| 252 | |||
| 253 | var symbolDef = new IntermediateSymbolDefinition("CustomDef", fieldDefs, null); | ||
| 254 | |||
| 255 | symbolDef.AddTag("customDef"); | ||
| 256 | |||
| 257 | var symbol = symbolDef.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT")); | ||
| 258 | symbol.Set(0, "foo"); | ||
| 259 | symbol.Set(1, 2); | ||
| 260 | symbol.Set(2, true); | ||
| 261 | |||
| 262 | symbol.AddTag("symbol1tag"); | ||
| 263 | |||
| 264 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 265 | section.AddSymbol(symbol); | ||
| 266 | |||
| 267 | var intermediate1 = new Intermediate("TestIntermediate", new[] { section }, null); | ||
| 268 | |||
| 269 | // Intermediate #2 | ||
| 270 | var fieldDefs2 = new[] | ||
| 271 | { | ||
| 272 | new IntermediateFieldDefinition("A", IntermediateFieldType.String), | ||
| 273 | new IntermediateFieldDefinition("B", IntermediateFieldType.Number), | ||
| 274 | new IntermediateFieldDefinition("C", IntermediateFieldType.Bool), | ||
| 275 | new IntermediateFieldDefinition("D", IntermediateFieldType.String), | ||
| 276 | }; | ||
| 277 | |||
| 278 | var symbolDef2 = new IntermediateSymbolDefinition("CustomDef2", 1, fieldDefs2, null); | ||
| 279 | |||
| 280 | symbolDef2.AddTag("customDef2"); | ||
| 281 | symbolDef2.AddTag("customDef2 tag2"); | ||
| 282 | |||
| 283 | var symbol2 = symbolDef2.CreateSymbol(sln, new Identifier(AccessModifier.Global, "customT2")); | ||
| 284 | symbol2.Set(0, "bar"); | ||
| 285 | symbol2.Set(1, 3); | ||
| 286 | symbol2.Set(2, false); | ||
| 287 | symbol2.Set(3, "baz"); | ||
| 288 | |||
| 289 | symbol2.AddTag("symbol2tag1"); | ||
| 290 | symbol2.AddTag("symbol2tag2"); | ||
| 291 | |||
| 292 | var section2 = new IntermediateSection("test2", SectionType.Fragment); | ||
| 293 | section2.AddSymbol(symbol2); | ||
| 294 | |||
| 295 | var intermediate2 = new Intermediate("TestIntermediate2", new[] { section2 }, null); | ||
| 296 | |||
| 297 | // Save | ||
| 298 | var path1 = Path.GetTempFileName(); | ||
| 299 | var path2 = Path.GetTempFileName(); | ||
| 300 | try | ||
| 301 | { | ||
| 302 | intermediate1.Save(path1); | ||
| 303 | intermediate2.Save(path2); | ||
| 304 | |||
| 305 | var loaded = Intermediate.Load(new[] { path1, path2 }); | ||
| 306 | |||
| 307 | var loaded1 = loaded.First(); | ||
| 308 | var loaded2 = loaded.Skip(1).Single(); | ||
| 309 | |||
| 310 | var loadedSymbol1 = loaded1.Sections.Single().Symbols.Single(); | ||
| 311 | var loadedSymbol2 = loaded2.Sections.Single().Symbols.Single(); | ||
| 312 | |||
| 313 | Assert.True(loadedSymbol1.Definition.HasTag("customDef")); | ||
| 314 | Assert.Equal("foo", loadedSymbol1.AsString(0)); | ||
| 315 | Assert.Equal(2, loadedSymbol1[1].AsNumber()); | ||
| 316 | Assert.True(loadedSymbol1[2].AsBool()); | ||
| 317 | Assert.True(loadedSymbol1.HasTag("symbol1tag")); | ||
| 318 | |||
| 319 | Assert.True(loadedSymbol2.Definition.HasTag("customDef2")); | ||
| 320 | Assert.True(loadedSymbol2.Definition.HasTag("customDef2 tag2")); | ||
| 321 | Assert.Equal("bar", loadedSymbol2.AsString(0)); | ||
| 322 | Assert.Equal(3, loadedSymbol2[1].AsNumber()); | ||
| 323 | Assert.False(loadedSymbol2[2].AsBool()); | ||
| 324 | Assert.Equal("baz", loadedSymbol2.AsString(3)); | ||
| 325 | Assert.True(loadedSymbol2.HasTag("symbol2tag1")); | ||
| 326 | Assert.True(loadedSymbol2.HasTag("symbol2tag2")); | ||
| 327 | } | ||
| 328 | finally | ||
| 329 | { | ||
| 330 | File.Delete(path2); | ||
| 331 | File.Delete(path1); | ||
| 332 | } | ||
| 333 | } | ||
| 334 | |||
| 335 | [Fact] | ||
| 336 | public void CanSaveAndLoadIntermediateWithLocalization() | ||
| 337 | { | ||
| 338 | var sln = new SourceLineNumber("test.wxs", 10); | ||
| 339 | |||
| 340 | var bindVariables = new[] | ||
| 341 | { | ||
| 342 | new BindVariable { Id = "TestVar1", Value = "TestValue1", SourceLineNumbers = sln }, | ||
| 343 | new BindVariable { Id = "TestVar2", Value = "TestValue2", Overridable = true, SourceLineNumbers = sln }, | ||
| 344 | }; | ||
| 345 | |||
| 346 | var controls = new[] | ||
| 347 | { | ||
| 348 | new LocalizedControl("TestDlg1", "TestControl1", 10, 10, 100, 100, false, false, false, null), | ||
| 349 | new LocalizedControl("TestDlg1", "TestControl2", 100, 90, 50, 70, false, false, false, "localized"), | ||
| 350 | }; | ||
| 351 | |||
| 352 | var localizations = new[] | ||
| 353 | { | ||
| 354 | new Localization(65001, 1252, null, bindVariables.ToDictionary(b => b.Id), controls.ToDictionary(c => c.GetKey())) | ||
| 355 | }; | ||
| 356 | |||
| 357 | var section = new IntermediateSection("test", SectionType.Product); | ||
| 358 | |||
| 359 | section.AddSymbol(new ComponentSymbol(sln, new Identifier(AccessModifier.Global, "TestComponent")) | ||
| 360 | { | ||
| 361 | ComponentId = new Guid(1, 0, 0, new byte[8]).ToString("B"), | ||
| 362 | DirectoryRef = "TestFolder", | ||
| 363 | Location = ComponentLocation.Either, | ||
| 364 | }); | ||
| 365 | |||
| 366 | var intermediate = new Intermediate("TestIntermediate", new[] { section }, localizations.ToDictionary(l => l.Culture)); | ||
| 367 | |||
| 368 | var path = Path.GetTempFileName(); | ||
| 369 | try | ||
| 370 | { | ||
| 371 | intermediate.Save(path); | ||
| 372 | |||
| 373 | var loaded = Intermediate.Load(path); | ||
| 374 | |||
| 375 | var loc = loaded.Localizations.Single(); | ||
| 376 | Assert.Equal(65001, loc.Codepage); | ||
| 377 | Assert.Empty(loc.Culture); | ||
| 378 | Assert.Equal(new[] | ||
| 379 | { | ||
| 380 | "TestVar1/TestValue1/False", | ||
| 381 | "TestVar2/TestValue2/True", | ||
| 382 | }, loc.Variables.Select(v => String.Join("/", v.Id, v.Value, v.Overridable)).ToArray()); | ||
| 383 | } | ||
| 384 | finally | ||
| 385 | { | ||
| 386 | File.Delete(path); | ||
| 387 | } | ||
| 388 | } | ||
| 389 | |||
| 390 | [Fact] | ||
| 391 | public void CanSaveAndLoadWindowsInstallerData() | ||
| 392 | { | ||
| 393 | var sln = new SourceLineNumber("test.wxs", 1); | ||
| 394 | var windowsInstallerData = new Wid.WindowsInstallerData(sln) | ||
| 395 | { | ||
| 396 | Type = OutputType.Product, | ||
| 397 | }; | ||
| 398 | |||
| 399 | var fileTable = windowsInstallerData.EnsureTable(Wid.WindowsInstallerTableDefinitions.File); | ||
| 400 | var fileRow = (FileRow)fileTable.CreateRow(sln); | ||
| 401 | fileRow.File = "TestFile"; | ||
| 402 | |||
| 403 | var path = Path.GetTempFileName(); | ||
| 404 | try | ||
| 405 | { | ||
| 406 | using (var wixout = WixOutput.Create(path)) | ||
| 407 | { | ||
| 408 | windowsInstallerData.Save(wixout); | ||
| 409 | } | ||
| 410 | |||
| 411 | var loaded = Wid.WindowsInstallerData.Load(path); | ||
| 412 | |||
| 413 | var loadedTable = Assert.Single(loaded.Tables); | ||
| 414 | Assert.Equal(Wid.WindowsInstallerTableDefinitions.File.Name, loadedTable.Name); | ||
| 415 | |||
| 416 | var loadedRow = Assert.Single(loadedTable.Rows); | ||
| 417 | var loadedFileRow = Assert.IsType<FileRow>(loadedRow); | ||
| 418 | |||
| 419 | Assert.Equal("TestFile", loadedFileRow.File); | ||
| 420 | } | ||
| 421 | finally | ||
| 422 | { | ||
| 423 | File.Delete(path); | ||
| 424 | } | ||
| 425 | } | ||
| 426 | } | ||
| 427 | } | ||
diff --git a/src/test/WixToolsetTest.Data/TagFixture.cs b/src/test/WixToolsetTest.Data/TagFixture.cs deleted file mode 100644 index 5527c978..00000000 --- a/src/test/WixToolsetTest.Data/TagFixture.cs +++ /dev/null | |||
| @@ -1,101 +0,0 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolsetTest.Data | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using Xunit; | ||
| 7 | |||
| 8 | public class TagFixture | ||
| 9 | { | ||
| 10 | [Fact] | ||
| 11 | public void CanAddSingleTag() | ||
| 12 | { | ||
| 13 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 14 | Assert.True(symbol.AddTag("test")); | ||
| 15 | Assert.True(symbol.HasTag("test")); | ||
| 16 | } | ||
| 17 | |||
| 18 | [Fact] | ||
| 19 | public void CanAddDuplicateTag() | ||
| 20 | { | ||
| 21 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 22 | Assert.True(symbol.AddTag("test")); | ||
| 23 | Assert.False(symbol.AddTag("test")); | ||
| 24 | } | ||
| 25 | |||
| 26 | [Fact] | ||
| 27 | public void CanAddRemoveSingleTag() | ||
| 28 | { | ||
| 29 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 30 | Assert.True(symbol.AddTag("test")); | ||
| 31 | Assert.True(symbol.RemoveTag("test")); | ||
| 32 | Assert.False(symbol.HasTag("test")); | ||
| 33 | } | ||
| 34 | |||
| 35 | [Fact] | ||
| 36 | public void CanAddMultipleTags() | ||
| 37 | { | ||
| 38 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 39 | Assert.True(symbol.AddTag("test1")); | ||
| 40 | Assert.True(symbol.AddTag("test2")); | ||
| 41 | Assert.True(symbol.HasTag("test1")); | ||
| 42 | Assert.True(symbol.HasTag("test2")); | ||
| 43 | } | ||
| 44 | |||
| 45 | [Fact] | ||
| 46 | public void CanAddRemoveMultipleTags() | ||
| 47 | { | ||
| 48 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 49 | Assert.True(symbol.AddTag("test1")); | ||
| 50 | Assert.True(symbol.AddTag("test2")); | ||
| 51 | Assert.True(symbol.RemoveTag("test2")); | ||
| 52 | Assert.False(symbol.HasTag("test2")); | ||
| 53 | Assert.True(symbol.RemoveTag("test1")); | ||
| 54 | Assert.False(symbol.HasTag("test1")); | ||
| 55 | } | ||
| 56 | |||
| 57 | [Fact] | ||
| 58 | public void CanAddRemoveMissingTags() | ||
| 59 | { | ||
| 60 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 61 | Assert.True(symbol.AddTag("test1")); | ||
| 62 | Assert.True(symbol.AddTag("test2")); | ||
| 63 | Assert.False(symbol.RemoveTag("test3")); | ||
| 64 | } | ||
| 65 | |||
| 66 | [Fact] | ||
| 67 | public void CanAdd2AndRemoveAllTags() | ||
| 68 | { | ||
| 69 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 70 | Assert.True(symbol.AddTag("test1")); | ||
| 71 | Assert.True(symbol.AddTag("test2")); | ||
| 72 | Assert.True(symbol.RemoveTag("test1")); | ||
| 73 | Assert.True(symbol.RemoveTag("test2")); | ||
| 74 | } | ||
| 75 | |||
| 76 | [Fact] | ||
| 77 | public void CanAdd3AndRemoveAllTags() | ||
| 78 | { | ||
| 79 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 80 | Assert.True(symbol.AddTag("test1")); | ||
| 81 | Assert.True(symbol.AddTag("test2")); | ||
| 82 | Assert.True(symbol.AddTag("test3")); | ||
| 83 | Assert.True(symbol.RemoveTag("test1")); | ||
| 84 | Assert.True(symbol.RemoveTag("test3")); | ||
| 85 | Assert.True(symbol.RemoveTag("test2")); | ||
| 86 | } | ||
| 87 | |||
| 88 | [Fact] | ||
| 89 | public void CanAdd3AndRemoveMissingTags() | ||
| 90 | { | ||
| 91 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 92 | Assert.True(symbol.AddTag("test1")); | ||
| 93 | Assert.True(symbol.AddTag("test2")); | ||
| 94 | Assert.True(symbol.AddTag("test3")); | ||
| 95 | Assert.False(symbol.RemoveTag("test4")); | ||
| 96 | Assert.True(symbol.RemoveTag("test1")); | ||
| 97 | Assert.True(symbol.RemoveTag("test3")); | ||
| 98 | Assert.True(symbol.RemoveTag("test2")); | ||
| 99 | } | ||
| 100 | } | ||
| 101 | } | ||
diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs deleted file mode 100644 index cde4a675..00000000 --- a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs +++ /dev/null | |||
| @@ -1,135 +0,0 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolsetTest.Data | ||
| 4 | { | ||
| 5 | using WixToolset.Data; | ||
| 6 | using WixToolset.Data.Symbols; | ||
| 7 | using Xunit; | ||
| 8 | |||
| 9 | public class SymbolDefinitionFixture | ||
| 10 | { | ||
| 11 | [Fact] | ||
| 12 | public void CanCreateFileSymbol() | ||
| 13 | { | ||
| 14 | var symbol = SymbolDefinitions.File.CreateSymbol(); | ||
| 15 | Assert.IsType<FileSymbol>(symbol); | ||
| 16 | Assert.Same(SymbolDefinitions.File, symbol.Definition); | ||
| 17 | } | ||
| 18 | |||
| 19 | [Fact] | ||
| 20 | public void CanCreateFileSymbolByName() | ||
| 21 | { | ||
| 22 | var symbol = SymbolDefinitions.ByName("File").CreateSymbol(); | ||
| 23 | Assert.IsType<FileSymbol>(symbol); | ||
| 24 | Assert.Same(SymbolDefinitions.File, symbol.Definition); | ||
| 25 | } | ||
| 26 | |||
| 27 | //[Fact] | ||
| 28 | //public void CanCreateFileSymbolByType() | ||
| 29 | //{ | ||
| 30 | // var symbol = SymbolDefinitions.CreateSymbol<FileSymbol>(); | ||
| 31 | // Assert.Same(SymbolDefinitions.File, symbol.Definition); | ||
| 32 | //} | ||
| 33 | |||
| 34 | [Fact] | ||
| 35 | public void CanSetComponentFieldInFileSymbolByCasting() | ||
| 36 | { | ||
| 37 | var fileSymbol = (FileSymbol)SymbolDefinitions.File.CreateSymbol(); | ||
| 38 | fileSymbol.ComponentRef = "Foo"; | ||
| 39 | Assert.Equal("Foo", fileSymbol.ComponentRef); | ||
| 40 | } | ||
| 41 | |||
| 42 | [Fact] | ||
| 43 | public void CanCheckNameofField() | ||
| 44 | { | ||
| 45 | var fileSymbol = new FileSymbol(); | ||
| 46 | Assert.Equal("ComponentRef", fileSymbol.Definition.FieldDefinitions[0].Name); | ||
| 47 | Assert.Null(fileSymbol.Fields[0]); | ||
| 48 | fileSymbol.ComponentRef = "Foo"; | ||
| 49 | Assert.Equal("ComponentRef", fileSymbol.Fields[0].Name); | ||
| 50 | Assert.Same(fileSymbol.Definition.FieldDefinitions[0].Name, fileSymbol.Fields[0].Name); | ||
| 51 | } | ||
| 52 | |||
| 53 | [Fact] | ||
| 54 | public void CanSetComponentFieldInFileSymbolByNew() | ||
| 55 | { | ||
| 56 | var fileSymbol = new FileSymbol(); | ||
| 57 | fileSymbol.ComponentRef = "Foo"; | ||
| 58 | Assert.Equal("Foo", fileSymbol.ComponentRef); | ||
| 59 | } | ||
| 60 | |||
| 61 | [Fact] | ||
| 62 | public void CanGetContext() | ||
| 63 | { | ||
| 64 | using (new IntermediateFieldContext("bar")) | ||
| 65 | { | ||
| 66 | var fileSymbol = new FileSymbol(); | ||
| 67 | fileSymbol.ComponentRef = "Foo"; | ||
| 68 | |||
| 69 | var field = fileSymbol[FileSymbolFields.ComponentRef]; | ||
| 70 | Assert.Equal("Foo", field.AsString()); | ||
| 71 | Assert.Equal("bar", field.Context); | ||
| 72 | } | ||
| 73 | } | ||
| 74 | |||
| 75 | [Fact] | ||
| 76 | public void CanSetInNestedContext() | ||
| 77 | { | ||
| 78 | var fileSymbol = new FileSymbol(); | ||
| 79 | |||
| 80 | using (new IntermediateFieldContext("bar")) | ||
| 81 | { | ||
| 82 | fileSymbol.ComponentRef = "Foo"; | ||
| 83 | |||
| 84 | var field = fileSymbol[FileSymbolFields.ComponentRef]; | ||
| 85 | Assert.Equal("Foo", field.AsString()); | ||
| 86 | Assert.Equal("bar", field.Context); | ||
| 87 | |||
| 88 | using (new IntermediateFieldContext("baz")) | ||
| 89 | { | ||
| 90 | fileSymbol.ComponentRef = "Foo2"; | ||
| 91 | |||
| 92 | field = fileSymbol[FileSymbolFields.ComponentRef]; | ||
| 93 | Assert.Equal("Foo2", field.AsString()); | ||
| 94 | Assert.Equal("baz", field.Context); | ||
| 95 | |||
| 96 | Assert.Equal("Foo", (string)field.PreviousValue); | ||
| 97 | Assert.Equal("bar", field.PreviousValue.Context); | ||
| 98 | } | ||
| 99 | |||
| 100 | fileSymbol.ComponentRef = "Foo3"; | ||
| 101 | |||
| 102 | field = fileSymbol[FileSymbolFields.ComponentRef]; | ||
| 103 | Assert.Equal("Foo3", field.AsString()); | ||
| 104 | Assert.Equal("bar", field.Context); | ||
| 105 | |||
| 106 | Assert.Equal("Foo2", (string)field.PreviousValue); | ||
| 107 | Assert.Equal("baz", field.PreviousValue.Context); | ||
| 108 | |||
| 109 | Assert.Equal("Foo", (string)field.PreviousValue.PreviousValue); | ||
| 110 | Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); | ||
| 111 | } | ||
| 112 | |||
| 113 | fileSymbol.ComponentRef = "Foo4"; | ||
| 114 | |||
| 115 | var fieldOutside = fileSymbol[FileSymbolFields.ComponentRef]; | ||
| 116 | Assert.Equal("Foo4", fieldOutside.AsString()); | ||
| 117 | Assert.Null(fieldOutside.Context); | ||
| 118 | } | ||
| 119 | |||
| 120 | //[Fact] | ||
| 121 | //public void CanSetComponentFieldInFileSymbol() | ||
| 122 | //{ | ||
| 123 | // var fileSymbol = SymbolDefinitions.File.CreateSymbol<FileSymbol>(); | ||
| 124 | // fileSymbol.Component_ = "Foo"; | ||
| 125 | // Assert.Equal("Foo", fileSymbol.Component_); | ||
| 126 | //} | ||
| 127 | |||
| 128 | //[Fact] | ||
| 129 | //public void CanThrowOnMismatchSymbolType() | ||
| 130 | //{ | ||
| 131 | // var e = Assert.Throws<InvalidCastException>(() => SymbolDefinitions.File.CreateSymbol<ComponentSymbol>()); | ||
| 132 | // Assert.Equal("Requested wrong type WixToolset.Data.Symbols.ComponentSymbol, actual type WixToolset.Data.Symbols.FileSymbol", e.Message); | ||
| 133 | //} | ||
| 134 | } | ||
| 135 | } | ||
diff --git a/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs b/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs deleted file mode 100644 index 5621a756..00000000 --- a/src/test/WixToolsetTest.Data/WindowsInstallerTableDefinitionsFixture.cs +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolsetTest.Data | ||
| 4 | { | ||
| 5 | using WixToolset.Data.WindowsInstaller; | ||
| 6 | using Xunit; | ||
| 7 | |||
| 8 | public class WindowsInstallerTableDefinitionsFixture | ||
| 9 | { | ||
| 10 | [Fact] | ||
| 11 | public void CanCreateWindowsInstallerRows() | ||
| 12 | { | ||
| 13 | foreach (var tableDefinition in WindowsInstallerTableDefinitions.All) | ||
| 14 | { | ||
| 15 | var table = new Table(tableDefinition); | ||
| 16 | var rowFromTable = table.CreateRow(null); | ||
| 17 | var rowFromTableDefinition = tableDefinition.CreateRow(null); | ||
| 18 | var expectedRowTypeName = tableDefinition.Name.Replace("_", "") + "Row"; | ||
| 19 | var expectedRowType = rowFromTable.GetType(); | ||
| 20 | |||
| 21 | Assert.Equal(expectedRowType, rowFromTableDefinition.GetType()); | ||
| 22 | if (typeof(Row) != expectedRowType) | ||
| 23 | { | ||
| 24 | Assert.Equal(expectedRowTypeName, expectedRowType.Name); | ||
| 25 | } | ||
| 26 | } | ||
| 27 | } | ||
| 28 | } | ||
| 29 | } | ||
diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj deleted file mode 100644 index fb0f8594..00000000 --- a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | <Project Sdk="Microsoft.NET.Sdk"> | ||
| 2 | |||
| 3 | <PropertyGroup> | ||
| 4 | <TargetFramework>netcoreapp3.1</TargetFramework> | ||
| 5 | |||
| 6 | <IsPackable>false</IsPackable> | ||
| 7 | </PropertyGroup> | ||
| 8 | |||
| 9 | <ItemGroup> | ||
| 10 | <ProjectReference Include="..\..\WixToolset.Data\WixToolset.Data.csproj" /> | ||
| 11 | </ItemGroup> | ||
| 12 | |||
| 13 | <ItemGroup> | ||
| 14 | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" /> | ||
| 15 | <PackageReference Include="xunit" Version="2.4.1" /> | ||
| 16 | <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" PrivateAssets="All" /> | ||
| 17 | </ItemGroup> | ||
| 18 | |||
| 19 | </Project> | ||
