Skip to content

Commit a079108

Browse files
committed
Merge pull request #28 from JakeGinnivan/MvcConventions
Mvc conventions looks good
2 parents 0f9c334 + fb0f24f commit a079108

File tree

59 files changed

+69303
-1
lines changed

Some content is hidden

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

59 files changed

+69303
-1
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TestAssembly.Controllers
2+
{
3+
using System.Web.Http;
4+
5+
public class BarApiControler : ApiController
6+
{
7+
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TestAssembly.Controllers
2+
{
3+
using System.Web.Mvc;
4+
5+
public class FooControler : Controller
6+
{
7+
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TestAssembly.Controllers
2+
{
3+
using System.Web.Http;
4+
5+
public class MyApiController : ApiController
6+
{
7+
8+
}
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace TestAssembly.Controllers
2+
{
3+
public class TestApiController
4+
{
5+
6+
}
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace TestAssembly.Controllers
2+
{
3+
public class TestController
4+
{
5+
6+
}
7+
}

TestAssembly/TestAssembly.csproj

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,31 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33+
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
34+
<Private>True</Private>
35+
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
36+
</Reference>
37+
<Reference Include="Newtonsoft.Json">
38+
<HintPath>..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll</HintPath>
39+
</Reference>
3340
<Reference Include="System" />
3441
<Reference Include="System.Core" />
42+
<Reference Include="System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
43+
<HintPath>..\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll</HintPath>
44+
</Reference>
45+
<Reference Include="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
46+
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.4.0.30506.0\lib\net40\System.Net.Http.Formatting.dll</HintPath>
47+
</Reference>
48+
<Reference Include="System.Net.Http.WebRequest, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
49+
<HintPath>..\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.WebRequest.dll</HintPath>
50+
</Reference>
51+
<Reference Include="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
52+
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
53+
</Reference>
54+
<Reference Include="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
55+
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll</HintPath>
56+
</Reference>
57+
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
3558
<Reference Include="System.Xml.Linq" />
3659
<Reference Include="System.Data.DataSetExtensions" />
3760
<Reference Include="Microsoft.CSharp" />
@@ -50,11 +73,19 @@
5073
<Compile Include="Collections\ICanRemove.cs" />
5174
<Compile Include="Collections\Leaf.cs" />
5275
<Compile Include="Collections\Tree.cs" />
76+
<Compile Include="Controllers\BarApiControler.cs" />
77+
<Compile Include="Controllers\FooControler.cs" />
78+
<Compile Include="Controllers\MyApiController.cs" />
79+
<Compile Include="Controllers\TestApiController.cs" />
80+
<Compile Include="Controllers\TestController.cs" />
5381
<Compile Include="Dtos\AnotherClass.cs" />
5482
<Compile Include="Dtos\BlahDto.cs" />
5583
<Compile Include="Properties\AssemblyInfo.cs" />
5684
<Compile Include="SomeDto.cs" />
5785
</ItemGroup>
86+
<ItemGroup>
87+
<None Include="packages.config" />
88+
</ItemGroup>
5889
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
5990
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
6091
Other similar extension points exist, see Microsoft.Common.targets.

TestAssembly/packages.config

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="Microsoft.AspNet.WebApi" version="4.0.30506.0" targetFramework="net40" />
4+
<package id="Microsoft.AspNet.WebApi.Client" version="4.0.30506.0" targetFramework="net40" />
5+
<package id="Microsoft.AspNet.WebApi.Core" version="4.0.30506.0" targetFramework="net40" />
6+
<package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.30506.0" targetFramework="net40" />
7+
<package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
8+
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
9+
<package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40" />
10+
</packages>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
'Api Controllers must be suffixed with Controller' for 'TestAssembly'
2+
---------------------------------------------------------------------
3+
4+
TestAssembly.Controllers.BarApiControler
5+
6+
'Types named *Controller must inherit from ApiController or Controller' for 'TestAssembly'
7+
------------------------------------------------------------------------------------------
8+
9+
TestAssembly.Controllers.TestApiController
10+
TestAssembly.Controllers.TestController
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
'Mvc Controllers must be suffixed with Controller' for 'TestAssembly'
2+
---------------------------------------------------------------------
3+
4+
TestAssembly.Controllers.FooControler
5+
6+
'Types named *Controller must inherit from ApiController or Controller' for 'TestAssembly'
7+
------------------------------------------------------------------------------------------
8+
9+
TestAssembly.Controllers.TestApiController
10+
TestAssembly.Controllers.TestController
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
namespace TestStack.ConventionTests.Tests
2+
{
3+
using ApprovalTests;
4+
using ApprovalTests.Reporters;
5+
using NUnit.Framework;
6+
using TestAssembly.Controllers;
7+
using TestStack.ConventionTests.ConventionData;
8+
using TestStack.ConventionTests.Conventions;
9+
10+
[TestFixture]
11+
[UseReporter(typeof(DiffReporter))]
12+
public class MvcConventions
13+
{
14+
[Test]
15+
public void controller_conventions()
16+
{
17+
var types = Types.InAssemblyOf<TestController>();
18+
var convention = new MvcControllerNameAndBaseClassConvention();
19+
20+
var ex = Assert.Throws<ConventionFailedException>(() => Convention.Is(convention, types));
21+
Approvals.Verify(ex.Message);
22+
}
23+
24+
[Test]
25+
public void api_controller_conventions()
26+
{
27+
var types = Types.InAssemblyOf<TestController>();
28+
var convention = new ApiControllerNamingAndBaseClassConvention();
29+
30+
var ex = Assert.Throws<ConventionFailedException>(() => Convention.Is(convention, types));
31+
Approvals.Verify(ex.Message);
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)