Skip to content

Commit

Permalink
moved the StoryTeller tests for querying AssetGraph into the new Asse…
Browse files Browse the repository at this point in the history
…tScenario text format so they run (faster) in NUnit
  • Loading branch information
jeremydmiller committed Mar 7, 2012
1 parent 256ab0e commit 5f127ba
Show file tree
Hide file tree
Showing 11 changed files with 198 additions and 111 deletions.
6 changes: 5 additions & 1 deletion src/FubuMVC.Core/Assets/AssetGraphScenario.cs
Expand Up @@ -99,11 +99,13 @@ public Reader()

_action = text =>
{
if (text.StartsWith("if"))
if (text.StartsWith("if", StringComparison.OrdinalIgnoreCase))
{
_action = _dslReader.ReadLine;
}
};


}

public AssetGraph Graph
Expand All @@ -115,6 +117,8 @@ public void ReadLine(string text)
{
text = text.TrimStart();

if (text.StartsWith("#")) return;

if (text.StartsWith(Requesting, StringComparison.OrdinalIgnoreCase))
{
_request = new Request();
Expand Down
185 changes: 185 additions & 0 deletions src/FubuMVC.Tests/Assets/AssetOrderingAndQueryingAcceptanceTests.cs
@@ -0,0 +1,185 @@
using FubuMVC.Core.Assets;
using NUnit.Framework;

namespace FubuMVC.Tests.Assets
{
[TestFixture]
public class AssetOrderingAndQueryingAcceptanceTests
{
[Test]
public void simple_queries()
{
AssetGraphScenario.For("simple query", @"
requesting A, B
should return A, B
");
}

[Test]
public void order_by_name_in_absence_of_any_other_criteria()
{
AssetGraphScenario.For("simple query", @"
requesting B, A
should return A, B
");
}

[Test]
public void dependencies_between_files()
{
AssetGraphScenario.For("dependencies between files", @"
If the asset configuration is
A requires B,C,D
C requires B,E
E requires F
F requires D
G requires H,I
I requires H,J
# One deep dependency
requesting F
should return D,F
# Two deep dependency
requesting E
should return D,F,E
# Three deep dependency
requesting A
should return B,D,F,E,C,A
# 3 deep in parallel
requesting A,G
should return B, D, H, J, F, I, E, G, C, A
");
}


[Test]
public void dependencies_through_aliases()
{
AssetGraphScenario.For("dependencies between files", @"
If the script graph is configured as
A requires B,C,D
C requires B,E
E requires F
F requires D
G requires H,I
I requires H,J
A is A.js
B is B.js
# One deep dependency
requesting F
should return D,F
# Two deep dependency
requesting E
should return D,F,E
# Three deep dependency
requesting A
should return B.js,D,F,E,C,A.js
# deep in parallel
requesting A,G
should return B.js, D, H, J, F, I, E, G, C, A.js
");
}


[Test]
public void mixed_queries()
{
AssetGraphScenario.For("mixed queries", @"
If the script graph is configured as
1 includes A,B,C
2 includes C,D
3 includes 1,E
D requires D1,D2
3 requires 4
4 includes jquery,jquery.validation
Combo includes 1,2
C-1 extends C
crud includes crudForm.js,validation.js
A requires crud
# Query for only one set with no dependencies
requesting 1
should return B, C, crudForm.js, validation.js, A, C-1
# Query for a set whose files have a dependency
requesting 2
should return C, D1, D2, C-1, D
# Fetch a set that references another set
requesting Combo
should return B, C, crudForm.js, D1, D2, validation.js, A, C-1, D
# Set with a dependency on another set
requesting 3
should return B, C, crudForm.js, E, jquery, jquery.validation, validation.js, A, C-1
# Multiple options
requesting 1,2,A,C
should return B, C, crudForm.js, D1, D2, validation.js, A, C-1, D
");
}


[Test]
public void extensions_to_files()
{
AssetGraphScenario.For("extensions to files", @"
If the script graph is configured as
A requires B,C
D extends A
F extends B
# Single file should put its extension right behind it
requesting B
should return B,F
# Query for two files with extensions
requesting A
should return B, C, F, A, D
");
}


[Test]
public void query_by_sets()
{
AssetGraphScenario.For("query by sets", @"
If the script graph is configured as
1 includes A,B,C
2 includes C,D
3 includes 1,E
D requires D1,D2
3 requires 4
4 includes jquery,jquery.validation
Combo includes 1,2
# Query for only one set with no dependencies
requesting 1
should return A,B,C
# Query for a set whose files have a dependency
requesting 2
should return C,D1,D2,D
# Fetch a set that references another set
requesting Combo
should return A, B, C, D1, D2, D
# Set with a dependency on another set
requesting 3
should return A, B, C, E, jquery, jquery.validation
");
}

}


}
1 change: 1 addition & 0 deletions src/FubuMVC.Tests/FubuMVC.Tests.csproj
Expand Up @@ -114,6 +114,7 @@
<Compile Include="Assets\AssetGraphScenarioTester.cs" />
<Compile Include="Assets\AssetGrouperTester.cs" />
<Compile Include="Assets\AssetNamesKeyTester.cs" />
<Compile Include="Assets\AssetOrderingAndQueryingAcceptanceTests.cs" />
<Compile Include="Assets\AssetPipelineBuilderActivatorIntegratedTester.cs" />
<Compile Include="Assets\AssetServicesRegistrationTester.cs" />
<Compile Include="Assets\AssetTagPlanCacheTester.cs" />
Expand Down
2 changes: 2 additions & 0 deletions src/FubuMVC.sln
Expand Up @@ -67,6 +67,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SerenityRunner", "SerenityR
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KayakTestApplication", "KayakTestApplication\KayakTestApplication.csproj", "{68CC89AB-EE8B-4B2D-9BA0-8B0FBF460446}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{90ECB723-0F2C-40A1-9055-6B78675CF85E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down
10 changes: 5 additions & 5 deletions src/Serenity.Testing/debugging.cs
@@ -1,11 +1,16 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using FubuCore.Conversion;
using FubuMVC.Core;
using FubuMVC.Core.Assets.Files;
using FubuMVC.Core.Assets.Http;
using FubuMVC.Core.Runtime;
using HtmlTags;
using KayakTestApplication;
using NUnit.Framework;
using StructureMap;
using TestContext = StoryTeller.Engine.TestContext;
using FubuTestingSupport;

Expand All @@ -14,11 +19,6 @@ namespace Serenity.Testing
[TestFixture, Explicit]
public class debugging
{
[Test]
public void load_the_object_converter()
{
new ObjectConverter().ShouldNotBeNull();
}

[Test]
public void start_an_inprocess_system_without_blowing_up()
Expand Down
19 changes: 0 additions & 19 deletions src/StoryTellerTesting/Tests/Assets/Dependencies between Files.xml

This file was deleted.

This file was deleted.

14 changes: 0 additions & 14 deletions src/StoryTellerTesting/Tests/Assets/Extensions to files.xml

This file was deleted.

24 changes: 0 additions & 24 deletions src/StoryTellerTesting/Tests/Assets/Mixed queries.xml

This file was deleted.

20 changes: 0 additions & 20 deletions src/StoryTellerTesting/Tests/Assets/Query by sets.xml

This file was deleted.

7 changes: 0 additions & 7 deletions src/StoryTellerTesting/Tests/Assets/Simple Queries.xml

This file was deleted.

0 comments on commit 5f127ba

Please sign in to comment.