diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs index 0d327e1c13..c85042e759 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs @@ -1,24 +1,24 @@ -//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -// -//using System; -//using ICSharpCode.SharpDevelop.Dom; -// -//namespace ICSharpCode.PackageManagement.EnvDTE -//{ -// public class CodeStruct : CodeType, global::EnvDTE.CodeStruct -// { -// public CodeStruct() -// { -// } -// -// public CodeStruct(IProjectContent projectContent, IClass c) -// : base(projectContent, c) -// { -// } -// -// public override global::EnvDTE.vsCMElement Kind { -// get { return global::EnvDTE.vsCMElement.vsCMElementStruct; } -// } -// } -//} +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.NRefactory.TypeSystem; + +namespace ICSharpCode.PackageManagement.EnvDTE +{ + public class CodeStruct : CodeType, global::EnvDTE.CodeStruct + { + public CodeStruct() + { + } + + public CodeStruct(CodeModelContext context, ITypeDefinition typeDefinition) + : base(context, typeDefinition) + { + } + + public override global::EnvDTE.vsCMElement Kind { + get { return global::EnvDTE.vsCMElement.vsCMElementStruct; } + } + } +} diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs index 504da769aa..e696dd8de0 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs @@ -1,72 +1,59 @@ -//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -// -//using System; -//using ICSharpCode.PackageManagement.EnvDTE; -//using ICSharpCode.SharpDevelop.Dom; -//using NUnit.Framework; -//using PackageManagement.Tests.Helpers; -// -//namespace PackageManagement.Tests.EnvDTE -//{ -// [TestFixture] -// public class CodeStructTests -// { -// CodeStruct codeStruct; -// ProjectContentHelper helper; -// IClass fakeStruct; -// -// [SetUp] -// public void Init() -// { -// helper = new ProjectContentHelper(); -// } -// -// void CreatePublicStruct(string name) -// { -// fakeStruct = helper.AddPublicStructToProjectContent(name); -// CreateStruct(); -// } -// -// void CreatePrivateStruct(string name) -// { -// fakeStruct = helper.AddPrivateStructToProjectContent(name); -// CreateStruct(); -// } -// -// void CreateStruct() -// { -// codeStruct = new CodeStruct(helper.ProjectContent, fakeStruct); -// } -// -// [Test] -// public void Access_PublicStruct_ReturnsPublic() -// { -// CreatePublicStruct("MyStruct"); -// -// global::EnvDTE.vsCMAccess access = codeStruct.Access; -// -// Assert.AreEqual(global::EnvDTE.vsCMAccess.vsCMAccessPublic, access); -// } -// -// [Test] -// public void Access_PrivateStruct_ReturnsPrivate() -// { -// CreatePrivateStruct("MyStruct"); -// -// global::EnvDTE.vsCMAccess access = codeStruct.Access; -// -// Assert.AreEqual(global::EnvDTE.vsCMAccess.vsCMAccessPrivate, access); -// } -// -// [Test] -// public void Kind_PublicStruct_ReturnsStruct() -// { -// CreatePublicStruct("MyStruct"); -// -// global::EnvDTE.vsCMElement kind = codeStruct.Kind; -// -// Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementStruct, kind); -// } -// } -//} +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using System.Linq; +using ICSharpCode.NRefactory.TypeSystem; +using ICSharpCode.PackageManagement.EnvDTE; +using NUnit.Framework; + +namespace PackageManagement.Tests.EnvDTE +{ + [TestFixture] + public class CodeStructTests : CodeModelTestBase + { + CodeStruct codeStruct; + + void CreateStruct(string code) + { + AddCodeFile("class.cs", code); + ITypeDefinition typeDefinition = assemblyModel + .TopLevelTypeDefinitions + .First() + .Resolve(); + + codeStruct = new CodeStruct(codeModelContext, typeDefinition); + } + + [Test] + public void Access_PublicStruct_ReturnsPublic() + { + CreateStruct("public struct MyStruct {}"); + + global::EnvDTE.vsCMAccess access = codeStruct.Access; + + Assert.AreEqual(global::EnvDTE.vsCMAccess.vsCMAccessPublic, access); + } + + + [Test] + public void Access_PrivateStruct_ReturnsPrivate() + { + CreateStruct("struct MyStruct {}"); + + global::EnvDTE.vsCMAccess access = codeStruct.Access; + + Assert.AreEqual(global::EnvDTE.vsCMAccess.vsCMAccessPrivate, access); + } + + [Test] + public void Kind_PublicStruct_ReturnsStruct() + { + CreateStruct("public struct MyStruct {}"); + + global::EnvDTE.vsCMElement kind = codeStruct.Kind; + + Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementStruct, kind); + } + } +}