source:
stable/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/PersistenceConsistencyChecks.cs
@
17105
Last change on this file since 17105 was 17105, checked in by mkommend, 5 years ago | |
---|---|
File size: 1.3 KB |
Line | |
---|---|
1 | using System; |
2 | using System.Collections.Generic; |
3 | using System.Linq; |
4 | using HEAL.Attic; |
5 | using HeuristicLab.PluginInfrastructure; |
6 | using Microsoft.VisualStudio.TestTools.UnitTesting; |
7 | |
8 | namespace HeuristicLab.Tests.Persistence.Attic { |
9 | [TestClass] |
10 | public class PersistenceConsistencyChecks { |
11 | [TestCategory("Persistence.Attic")] |
12 | [TestCategory("Essential")] |
13 | [TestProperty("Time", "short")] |
14 | [TestMethod] |
15 | public void CheckDuplicateGUIDs() { |
16 | // easy to produce duplicate GUIDs with copy&paste |
17 | |
18 | var dict = new Dictionary<Guid, string>(); |
19 | var duplicates = new Dictionary<string, string>(); |
20 | foreach (Type type in ApplicationManager.Manager.GetTypes(typeof(object))) { |
21 | var attr = StorableTypeAttribute.GetStorableTypeAttribute(type); |
22 | if (attr == null) |
23 | continue; |
24 | |
25 | foreach (var guid in attr.Guids) { |
26 | if (!dict.ContainsKey(guid)) { |
27 | dict.Add(guid, type.FullName); |
28 | } else { |
29 | duplicates.Add(type.FullName, dict[guid]); |
30 | } |
31 | } |
32 | } |
33 | |
34 | foreach (var kvp in duplicates) { |
35 | Console.WriteLine($"{kvp.Key} has same GUID as {kvp.Value}"); |
36 | } |
37 | if (duplicates.Any()) Assert.Fail("Duplicate GUIDs found."); |
38 | } |
39 | } |
40 | } |
Note: See TracBrowser
for help on using the repository browser.