Skip to content

Commit c830687

Browse files
maca88hazzik
authored andcommitted
generating tests as separated classes, updated nunit to 3.2.1.0
1 parent 841ae76 commit c830687

File tree

1,183 files changed

+73642
-4846
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,183 files changed

+73642
-4846
lines changed
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
<?xml version="1.0" encoding="utf-8" ?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<configSections>
44
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
55
</configSections>
66
<startup>
7-
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
7+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
88
</startup>
99

1010
<log4net>
@@ -14,21 +14,21 @@
1414
</layout>
1515
</appender>
1616
<appender name="FileAppender" type="log4net.Appender.FileAppender">
17-
<file value="Log.txt" />
18-
<appendToFile value="true" />
19-
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
17+
<file value="Log.txt"/>
18+
<appendToFile value="true"/>
19+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
2020
<layout type="log4net.Layout.PatternLayout">
21-
<conversionPattern value="%level - %message%newline" />
21+
<conversionPattern value="%level - %message%newline"/>
2222
</layout>
2323
<filter type="log4net.Filter.LevelRangeFilter">
24-
<levelMin value="INFO" />
25-
<levelMax value="FATAL" />
24+
<levelMin value="INFO"/>
25+
<levelMax value="FATAL"/>
2626
</filter>
2727
</appender>
2828
<root>
2929
<level value="INFO"/>
3030
<appender-ref ref="FileAppender"/>
31-
<appender-ref ref="ConsoleAppender" />
31+
<appender-ref ref="ConsoleAppender"/>
3232
</root>
3333
</log4net>
34-
</configuration>
34+
</configuration>

src/NHibernate.AsyncGenerator/DocumentInfo.cs

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,28 @@
44
using System.Text;
55
using System.Threading.Tasks;
66
using Microsoft.CodeAnalysis;
7+
using Microsoft.CodeAnalysis.CSharp;
78
using Microsoft.CodeAnalysis.CSharp.Syntax;
89
using Microsoft.CodeAnalysis.FindSymbols;
910
using NHibernate.AsyncGenerator.Extensions;
1011

1112
namespace NHibernate.AsyncGenerator
1213
{
13-
public class DocumentInfo : Dictionary<string, NamespaceInfo>
14+
public class DocumentInfo : Dictionary<NamespaceDeclarationSyntax, NamespaceInfo>
1415
{
1516
public DocumentInfo(ProjectInfo projectInfo, Document document)
1617
{
1718
ProjectInfo = projectInfo;
1819
Document = document;
1920
}
2021

22+
public async Task Initialize()
23+
{
24+
RootNode = (CompilationUnitSyntax) await Document.GetSyntaxRootAsync().ConfigureAwait(false);
25+
SemanticModel = await Document.GetSemanticModelAsync().ConfigureAwait(false);
26+
GlobalNamespaceInfo = new NamespaceInfo(this, SemanticModel.Compilation.GlobalNamespace, null);
27+
}
28+
2129
public ProjectInfo ProjectInfo { get; }
2230

2331
public Document Document { get; }
@@ -28,21 +36,18 @@ public DocumentInfo(ProjectInfo projectInfo, Document document)
2836

2937
public string Path => Document.FilePath;
3038

31-
public CompilationUnitSyntax RootNode { get; set; }
39+
public CompilationUnitSyntax RootNode { get; private set; }
3240

33-
public SemanticModel SemanticModel { get; set; }
41+
public SemanticModel SemanticModel { get; private set; }
42+
43+
public NamespaceInfo GlobalNamespaceInfo { get; private set; }
3444

3545
public NamespaceInfo GetNamespaceInfo(ISymbol symbol, bool create = false)
3646
{
3747
var namespaceSymbol = symbol.ContainingNamespace;
38-
var namespaceName = namespaceSymbol.Name;
39-
if (ContainsKey(namespaceName))
48+
if (namespaceSymbol.IsGlobalNamespace)
4049
{
41-
return this[namespaceName];
42-
}
43-
if (!create)
44-
{
45-
return null;
50+
return GlobalNamespaceInfo;
4651
}
4752

4853
var location = namespaceSymbol.Locations.Single(o => o.SourceTree.FilePath == Path);
@@ -62,8 +67,40 @@ public NamespaceInfo GetNamespaceInfo(ISymbol symbol, bool create = false)
6267
{
6368
node = RootNode.DescendantNodes().OfType<NamespaceDeclarationSyntax>().Single(o => o.FullSpan.End == location.SourceSpan.End);
6469
}
65-
var docNamespace = new NamespaceInfo(this, namespaceSymbol, node);
66-
Add(namespaceName, docNamespace);
70+
return GetNamespaceInfo(node, namespaceSymbol, create);
71+
}
72+
73+
public NamespaceInfo GetNamespaceInfo(SyntaxNode node, bool create = false)
74+
{
75+
if (node == null)
76+
{
77+
return GlobalNamespaceInfo;
78+
}
79+
var namespaceNode = node.AncestorsAndSelf().OfType<NamespaceDeclarationSyntax>().FirstOrDefault();
80+
if (namespaceNode == null)
81+
{
82+
return GlobalNamespaceInfo;
83+
}
84+
var namespaceSymbol = SemanticModel.GetDeclaredSymbol(namespaceNode);
85+
return GetNamespaceInfo(namespaceNode, namespaceSymbol, create);
86+
}
87+
88+
public NamespaceInfo GetNamespaceInfo(NamespaceDeclarationSyntax namespaceNode, INamespaceSymbol namespaceSymbol, bool create = false)
89+
{
90+
if (ContainsKey(namespaceNode))
91+
{
92+
return this[namespaceNode];
93+
}
94+
if (!create)
95+
{
96+
return null;
97+
}
98+
var docNamespace = new NamespaceInfo(this, namespaceSymbol, namespaceNode);
99+
Add(namespaceNode, docNamespace);
100+
if (Keys.GroupBy(o => o.Name).Any(o => o.Count() > 1)) //TODO REMOVE
101+
{
102+
103+
}
67104
return docNamespace;
68105
}
69106

@@ -72,25 +109,35 @@ public MethodInfo GetOrCreateMethodInfo(IMethodSymbol symbol)
72109
return GetNamespaceInfo(symbol, true).GetTypeInfo(symbol, true).GetMethodInfo(symbol, true);
73110
}
74111

112+
public MethodInfo GetOrCreateMethodInfo(MethodDeclarationSyntax node)
113+
{
114+
return GetNamespaceInfo(node, true).GetTypeInfo(node, true).GetMethodInfo(node, true);
115+
}
116+
75117
public MethodInfo GetMethodInfo(IMethodSymbol symbol)
76118
{
77-
return GetNamespaceInfo(symbol).GetTypeInfo(symbol).GetMethodInfo(symbol);
119+
return GetNamespaceInfo(symbol)?.GetTypeInfo(symbol)?.GetMethodInfo(symbol);
78120
}
79121

80122
public TypeInfo GetTypeInfo(INamedTypeSymbol symbol)
81123
{
82124
return GetNamespaceInfo(symbol).GetTypeInfo(symbol);
83125
}
84126

127+
public TypeInfo GetOrCreateTypeInfo(TypeDeclarationSyntax node)
128+
{
129+
return GetNamespaceInfo(node, true).GetTypeInfo(node, true);
130+
}
131+
85132
public bool ContainsReference(IMethodSymbol symbol, ReferenceLocation reference)
86133
{
87134
return GetNamespaceInfo(symbol)?.GetTypeInfo(symbol)?.GetMethodInfo(symbol)?.References?.Contains(reference) == true;
88135
}
89-
136+
/*
90137
public bool ContainsBodyToAsyncMethodReference(IMethodSymbol symbol, ReferenceLocation reference)
91138
{
92139
return GetNamespaceInfo(symbol)?.GetTypeInfo(symbol)?.GetMethodInfo(symbol)?.BodyToAsyncMethodsReferences?.Contains(reference) == true;
93-
}
140+
}*/
94141

95142
public ISymbol GetEnclosingMethodOrPropertyOrField(ReferenceLocation reference)
96143
{

0 commit comments

Comments
 (0)