Skip to content

Commit 9a7ccd4

Browse files
committed
refactor: guards, redundant code, whitespace, variable declaration closer to usage, test naming
1 parent 85775d5 commit 9a7ccd4

6 files changed

Lines changed: 54 additions & 31 deletions

File tree

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
using System.Collections.Generic;
2-
using System.Text;
1+
using System.Text;
32

43
namespace ScriptCs.Contracts
54
{
65
public interface IScriptLibraryComposer
76
{
87
void Compose(string workingDirectory, StringBuilder builder = null);
8+
99
string ScriptLibrariesFile { get; }
1010
}
11-
}
11+
}

src/ScriptCs.Core/ScriptExecutor.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ public ScriptExecutor(
6969
Guard.AgainstNullArgument("fileSystem", fileSystem);
7070
Guard.AgainstNullArgumentProperty("fileSystem", "BinFolder", fileSystem.BinFolder);
7171
Guard.AgainstNullArgumentProperty("fileSystem", "DllCacheFolder", fileSystem.DllCacheFolder);
72+
Guard.AgainstNullArgument("filePreProcessor", filePreProcessor);
73+
Guard.AgainstNullArgument("scriptEngine", scriptEngine);
74+
Guard.AgainstNullArgument("logger", logger);
75+
Guard.AgainstNullArgument("composer", composer);
76+
7277
References = new AssemblyReferences(DefaultReferences);
7378
Namespaces = new Collection<string>();
7479
ImportNamespaces(DefaultNamespaces);

src/ScriptCs.Core/ScriptLibraryComposer.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Text;
5-
using System.Threading.Tasks;
65
using Common.Logging;
76
using ScriptCs.Contracts;
87
using System.IO;
@@ -43,18 +42,18 @@ internal string GetMainScript(IPackageObject package)
4342
if (count == 1)
4443
{
4544
script = content[0];
46-
}
45+
}
4746
else if (content.Count() > 1)
4847
{
4948
_logger.WarnFormat("Script Libraries in '{0}' ignored due to multiple Main files being present", package.FullName);
5049
return null;
5150
}
52-
51+
5352
if (script != null)
5453
{
55-
_logger.DebugFormat("Found main script: {0}", script);
54+
_logger.DebugFormat("Found main script: {0}", script);
5655
}
57-
56+
5857
return script;
5958
}
6059

@@ -70,13 +69,8 @@ public void Compose(string workingDirectory, StringBuilder builder = null)
7069
return;
7170
}
7271

73-
var namespaces = new List<string>();
74-
var references = new List<string>();
75-
7672
var packagesPath = Path.Combine(workingDirectory, _fileSystem.PackagesFolder);
77-
var packageReferences = _packageAssemblyResolver.GetPackages(workingDirectory);
7873
var packageScriptsPath = Path.Combine(packagesPath, ScriptLibrariesFile);
79-
8074
if (!_fileSystem.DirectoryExists(packagesPath) || _fileSystem.FileExists(packageScriptsPath))
8175
{
8276
return;
@@ -87,6 +81,9 @@ public void Compose(string workingDirectory, StringBuilder builder = null)
8781
builder = new StringBuilder();
8882
}
8983

84+
var namespaces = new List<string>();
85+
var references = new List<string>();
86+
var packageReferences = _packageAssemblyResolver.GetPackages(workingDirectory);
9087
foreach (var reference in packageReferences)
9188
{
9289
ProcessPackage(packagesPath, reference, builder, references, namespaces);
@@ -101,15 +98,20 @@ public void Compose(string workingDirectory, StringBuilder builder = null)
10198
{
10299
builder.Insert(0, String.Format("#r {0}{1}", reference, Environment.NewLine));
103100
}
101+
104102
_fileSystem.WriteToFile(packageScriptsPath, builder.ToString());
105103
}
106104

107-
protected internal virtual void ProcessPackage(string packagesPath, IPackageReference reference, StringBuilder builder, List<string> references,
105+
protected internal virtual void ProcessPackage(
106+
string packagesPath,
107+
IPackageReference reference,
108+
StringBuilder builder,
109+
List<string> references,
108110
List<string> namespaces)
109111
{
110112
_logger.DebugFormat("Finding package:{0}", reference.PackageId);
111113
var package = _packageContainer.FindPackage(packagesPath, reference);
112-
114+
113115
if (package == null)
114116
{
115117
_logger.WarnFormat("Package missing: {0}", reference.PackageId);

test/ScriptCs.Core.Tests/ReplCommands/AliasCommandTests.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
using System.Collections.Generic;
22
using System.IO;
3+
using Common.Logging;
34
using Moq;
45
using ScriptCs.Contracts;
56
using ScriptCs.ReplCommands;
67
using Should;
78
using Xunit;
9+
using Xunit.Extensions;
810

911
namespace ScriptCs.Tests.ReplCommands
1012
{
@@ -25,20 +27,34 @@ public void ShouldReturnAlias()
2527

2628
public class ExecuteMethod
2729
{
28-
[Fact]
29-
public void ShouldAliasCommandWithNewName()
30+
[Theory, ScriptCsAutoData]
31+
public void ShouldAliasCommandWithNewName(
32+
Mock<IFileSystem> fileSystem,
33+
Mock<IScriptEngine> engine,
34+
Mock<IObjectSerializer> serializer,
35+
Mock<ILog> logger,
36+
Mock<IScriptLibraryComposer> composer,
37+
Mock<IConsole> console,
38+
Mock<IFilePreProcessor> filePreProcessor)
3039
{
3140
// arrange
3241
var currentDir = @"C:\";
3342
var dummyCommand = new Mock<IReplCommand>();
3443
dummyCommand.Setup(x => x.CommandName).Returns("foo");
3544

36-
var fs = new Mock<IFileSystem>();
37-
fs.Setup(x => x.BinFolder).Returns(Path.Combine(currentDir, "bin"));
38-
fs.Setup(x => x.DllCacheFolder).Returns(Path.Combine(currentDir, "cache"));
45+
fileSystem.Setup(x => x.BinFolder).Returns(Path.Combine(currentDir, "bin"));
46+
fileSystem.Setup(x => x.DllCacheFolder).Returns(Path.Combine(currentDir, "cache"));
3947

40-
var console = new Mock<IConsole>();
41-
var executor = new Repl(null, fs.Object, null, null, null, null, null, null, new List<IReplCommand> { dummyCommand.Object });
48+
var executor = new Repl(
49+
new string[0],
50+
fileSystem.Object,
51+
engine.Object,
52+
serializer.Object,
53+
logger.Object,
54+
composer.Object,
55+
console.Object,
56+
filePreProcessor.Object,
57+
new List<IReplCommand> { dummyCommand.Object });
4258

4359
var cmd = new AliasCommand(console.Object);
4460

@@ -64,4 +80,4 @@ public void ShouldNotThrowAnExceptionWhenAnUnknownCommandIsPassed()
6480
}
6581
}
6682
}
67-
}
83+
}

test/ScriptCs.Core.Tests/ReplTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ public Mocks()
2323
FileSystem.SetupGet(x => x.PackagesFolder).Returns("scriptcs_packages");
2424
ScriptEngine = new Mock<IScriptEngine>();
2525
Logger = new Mock<ILog>();
26-
PackageScriptsComposer = new Mock<IScriptLibraryComposer>();
27-
PackageScriptsComposer.SetupGet(p => p.ScriptLibrariesFile).Returns("PackageScripts.csx");
26+
ScriptLibraryComposer = new Mock<IScriptLibraryComposer>();
27+
ScriptLibraryComposer.SetupGet(p => p.ScriptLibrariesFile).Returns("PackageScripts.csx");
2828
Console = new Mock<IConsole>();
2929
ScriptPack = new Mock<IScriptPack>();
3030
FilePreProcessor = new Mock<IFilePreProcessor>();
@@ -46,7 +46,7 @@ public Mocks()
4646

4747
public Mock<IFilePreProcessor> FilePreProcessor { get; private set; }
4848

49-
public Mock<IScriptLibraryComposer> PackageScriptsComposer { get; private set; }
49+
public Mock<IScriptLibraryComposer> ScriptLibraryComposer { get; private set; }
5050

5151
public Mock<IReplCommand>[] ReplCommands { get; set; }
5252
}
@@ -59,7 +59,7 @@ public static Repl GetRepl(Mocks mocks)
5959
mocks.ScriptEngine.Object,
6060
mocks.ObjectSerializer.Object,
6161
mocks.Logger.Object,
62-
mocks.PackageScriptsComposer.Object,
62+
mocks.ScriptLibraryComposer.Object,
6363
mocks.Console.Object,
6464
mocks.FilePreProcessor.Object,
6565
mocks.ReplCommands.Select(x => x.Object));

test/ScriptCsMoqCustomization.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.IO;
2-
using Moq;
1+
using Moq;
32
using Ploeh.AutoFixture;
43
using Ploeh.AutoFixture.AutoMoq;
54
using ScriptCs.Contracts;
@@ -12,7 +11,7 @@ void ICustomization.Customize(IFixture fixture)
1211
{
1312
this.Customize(fixture);
1413

15-
fixture.Register<Mock<IFileSystem>>(() =>
14+
fixture.Register(() =>
1615
{
1716
var fileSystem = new Mock<IFileSystem>();
1817
fileSystem.SetupGet(f => f.PackagesFile).Returns("scriptcs_packages.config");
@@ -26,7 +25,8 @@ void ICustomization.Customize(IFixture fixture)
2625
fileSystem.Setup(f => f.GetWorkingDirectory(It.IsAny<string>())).Returns("workingdirectory");
2726
return fileSystem;
2827
});
29-
fixture.Register<Mock<IScriptLibraryComposer>>(() =>
28+
29+
fixture.Register(() =>
3030
{
3131
var composer = new Mock<IScriptLibraryComposer>();
3232
composer.SetupGet(c => c.ScriptLibrariesFile).Returns("ScriptLibraries.csx");

0 commit comments

Comments
 (0)