Skip to content

Commit 23d44eb

Browse files
committed
Merge branch 'feature/multiple_queues'
2 parents 7c64d61 + 0281de8 commit 23d44eb

35 files changed

+932
-152
lines changed

src/InEngine.Commands/InEngine.Commands.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
<Compile Include="..\SharedAssemblyInfo.cs">
4343
<Link>Properties\SharedAssemblyInfo.cs</Link>
4444
</Compile>
45+
<Compile Include="Sample\Echo.cs" />
4546
</ItemGroup>
4647
<ItemGroup>
4748
<Folder Include="Sample\" />

src/InEngine.Commands/Options.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ public class Options : IOptions
1010
[VerbOption("sample:minimal")]
1111
public Minimal Minimal { get; set; }
1212

13+
[VerbOption("sample:echo")]
14+
public Echo Echo { get; set; }
15+
1316
[HelpVerbOption]
1417
public string GetUsage(string verb)
1518
{
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using InEngine.Core;
2+
using System;
3+
using CommandLine;
4+
5+
namespace InEngine.Commands.Sample
6+
{
7+
public class Echo : AbstractCommand
8+
{
9+
[Option("text")]
10+
public string Text { get; set; }
11+
12+
public override CommandResult Run()
13+
{
14+
Console.WriteLine(Text);
15+
return new CommandResult(true);
16+
}
17+
}
18+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6+
<ProjectGuid>{CC74DD78-76C9-4143-A567-527E82DA475B}</ProjectGuid>
7+
<OutputType>Library</OutputType>
8+
<RootNamespace>InEngine.Core.Tests</RootNamespace>
9+
<AssemblyName>InEngine.Core.Tests</AssemblyName>
10+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
11+
</PropertyGroup>
12+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
13+
<DebugSymbols>true</DebugSymbols>
14+
<DebugType>full</DebugType>
15+
<Optimize>false</Optimize>
16+
<OutputPath>bin\Debug</OutputPath>
17+
<DefineConstants>DEBUG;</DefineConstants>
18+
<ErrorReport>prompt</ErrorReport>
19+
<WarningLevel>4</WarningLevel>
20+
</PropertyGroup>
21+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
22+
<Optimize>true</Optimize>
23+
<OutputPath>bin\Release</OutputPath>
24+
<ErrorReport>prompt</ErrorReport>
25+
<WarningLevel>4</WarningLevel>
26+
</PropertyGroup>
27+
<ItemGroup>
28+
<Reference Include="System" />
29+
<Reference Include="BeekmanLabs.UnitTesting">
30+
<HintPath>..\packages\BeekmanLabs.UnitTesting.0.0.0\lib\net45\BeekmanLabs.UnitTesting.dll</HintPath>
31+
</Reference>
32+
<Reference Include="nunit.framework">
33+
<HintPath>..\packages\NUnit.3.9.0\lib\net45\nunit.framework.dll</HintPath>
34+
</Reference>
35+
<Reference Include="Common.Logging.Core">
36+
<HintPath>..\packages\Common.Logging.Core.3.3.1\lib\net40\Common.Logging.Core.dll</HintPath>
37+
</Reference>
38+
<Reference Include="Common.Logging">
39+
<HintPath>..\packages\Common.Logging.3.3.1\lib\net40\Common.Logging.dll</HintPath>
40+
</Reference>
41+
<Reference Include="Quartz">
42+
<HintPath>..\packages\Quartz.2.6.1\lib\net40\Quartz.dll</HintPath>
43+
</Reference>
44+
</ItemGroup>
45+
<ItemGroup>
46+
<Compile Include="Queue\Commands\PublishTest.cs" />
47+
</ItemGroup>
48+
<ItemGroup>
49+
<None Include="packages.config" />
50+
<None Include="job_scheduling_data_2_0.xsd" />
51+
<None Include="appsettings.json">
52+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
53+
</None>
54+
</ItemGroup>
55+
<ItemGroup>
56+
<Folder Include="Queue\" />
57+
</ItemGroup>
58+
<ItemGroup>
59+
<ProjectReference Include="..\InEngine.Core\InEngine.Core.csproj">
60+
<Project>{1C604C4F-3F98-483C-89E3-C951BE03366A}</Project>
61+
<Name>InEngine.Core</Name>
62+
</ProjectReference>
63+
</ItemGroup>
64+
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
65+
</Project>
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using BeekmanLabs.UnitTesting;
5+
using InEngine.Core.Exceptions;
6+
using InEngine.Core.Queue.Commands;
7+
using NUnit.Framework;
8+
9+
namespace InEngine.Core.Tests.Queue.Commands
10+
{
11+
[TestFixture]
12+
public class PublishTest : TestBase<Publish>
13+
{
14+
[SetUp]
15+
public void Setup()
16+
{
17+
InEngineSettings.BasePath = TestContext.CurrentContext.TestDirectory;
18+
}
19+
20+
[Test]
21+
public void ShouldPublishCommandObject()
22+
{
23+
var expectedMessage = "Published";
24+
Subject.Command = new Null();
25+
26+
var result = Subject.Run();
27+
28+
Assert.IsTrue(result.IsSuccessful);
29+
Assert.AreEqual(expectedMessage, result.Message);
30+
}
31+
32+
[Test]
33+
public void ShouldPublishCommandByArgs()
34+
{
35+
var expectedMessage = "Published";
36+
var nullCommand = new Null();
37+
Subject.CommandAssembly = nullCommand.GetType().Assembly.GetName().Name + ".dll";
38+
Subject.CommandClass = nullCommand.GetType().FullName;
39+
40+
var result = Subject.Run();
41+
42+
Assert.IsTrue(result.IsSuccessful);
43+
Assert.AreEqual(expectedMessage, result.Message);
44+
}
45+
46+
[Test]
47+
public void ShouldPublishManyCommands()
48+
{
49+
//var expectedMessage = "Published";
50+
Subject.Command = new Null();
51+
var results = new List<CommandResult>();
52+
53+
foreach(var i in Enumerable.Range(0, 200).ToList())
54+
results.Add(Subject.Run());
55+
56+
//Assert.IsTrue(result.IsSuccessful);
57+
//Assert.AreEqual(expectedMessage, result.Message);
58+
}
59+
60+
[Test]
61+
public void ShouldFailWhenCommandDoesNotExist()
62+
{
63+
Subject.CommandAssembly = "foo";
64+
Subject.CommandClass = "bar";
65+
var expectedMessage = "Could not load plugin: " + Subject.CommandAssembly;
66+
67+
var result = Assert.Throws<PluginNotFoundException>(() => { Subject.Run(); });
68+
69+
Assert.AreEqual(expectedMessage, result.Message);
70+
}
71+
}
72+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"InEngine": {
3+
"Queue": {
4+
"QueueName": "InEngine:Queue",
5+
"RedisHost": "localhost",
6+
"RedisPort": 6379,
7+
"RedisDb": 0,
8+
"RedisPassword": ""
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)