Skip to content

Commit 9b934d9

Browse files
committed
Merge with azure-storage
2 parents 12423df + 477b1bd commit 9b934d9

File tree

82 files changed

+696
-329
lines changed

Some content is hidden

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

82 files changed

+696
-329
lines changed

src/FunnelWeb.Azure/ServiceConfiguration.Cloud.cscfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<Setting name="funnelweb.configuration.authentication.username" value="test" />
99
<Setting name="funnelweb.configuration.authentication.password" value="test" />
1010
<Setting name="funnelweb.configuration.database.provider" value="sql" />
11+
<Setting name="StorageConnectionString" value="" />
12+
<Setting name="BlobContainerName" value="FunnelWeb" />
1113
</ConfigurationSettings>
1214
</Role>
1315
</ServiceConfiguration>

src/FunnelWeb.Azure/ServiceConfiguration.Local.cscfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<Setting name="funnelweb.configuration.authentication.username" value="test" />
99
<Setting name="funnelweb.configuration.authentication.password" value="test" />
1010
<Setting name="funnelweb.configuration.database.provider" value="sql" />
11+
<Setting name="StorageConnectionString" value="UseDevelopmentStorage=true" />
12+
<Setting name="BlobContainerName" value="FunnelWeb" />
1113
</ConfigurationSettings>
1214
</Role>
1315
</ServiceConfiguration>

src/FunnelWeb.Azure/ServiceDefinition.build.csdef

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
<Setting name="funnelweb.configuration.authentication.username" />
2828
<Setting name="funnelweb.configuration.authentication.password" />
2929
<Setting name="funnelweb.configuration.database.provider" />
30+
<Setting name="StorageConnectionString" />
31+
<Setting name="BlobContainerName" />
3032
</ConfigurationSettings>
33+
<LocalResources></LocalResources>
3134
</WebRole>
3235
</ServiceDefinition>

src/FunnelWeb.Azure/ServiceDefinition.csdef

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
<Setting name="funnelweb.configuration.authentication.username" />
2020
<Setting name="funnelweb.configuration.authentication.password" />
2121
<Setting name="funnelweb.configuration.database.provider" />
22+
<Setting name="StorageConnectionString" />
23+
<Setting name="BlobContainerName" />
2224
</ConfigurationSettings>
25+
<LocalResources>
26+
</LocalResources>
2327
</WebRole>
2428
</ServiceDefinition>

src/FunnelWeb.Tests/Core/Repositories/FileRepositoryTests.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
using System;
22
using System.Web;
33
using FunnelWeb.Model.Repositories.Internal;
4+
using FunnelWeb.Providers.File;
45
using FunnelWeb.Settings;
6+
using FunnelWeb.Utilities;
57
using NSubstitute;
68
using NUnit.Framework;
79

810
namespace FunnelWeb.Tests.Core.Repositories
911
{
1012
public class FileRepositoryTests
1113
{
14+
private readonly IMimeTypeLookup mimeTypeLookup;
15+
16+
public FileRepositoryTests()
17+
{
18+
mimeTypeLookup = Substitute.For<IMimeTypeLookup>();
19+
}
20+
1221
[Test]
1322
public void RelativePaths()
1423
{
@@ -18,7 +27,7 @@ public void RelativePaths()
1827
var settings = Substitute.For<ISettingsProvider>();
1928
settings.GetSettings<FunnelWebSettings>().Returns(new FunnelWebSettings { UploadPath = "~/Temp" });
2029

21-
new FileRepository(settings, server);
30+
new FileRepository(settings, server, mimeTypeLookup);
2231

2332
//Act
2433

@@ -34,7 +43,7 @@ public void AbsolutePaths()
3443
var settings = Substitute.For<ISettingsProvider>();
3544
settings.GetSettings<FunnelWebSettings>().Returns(new FunnelWebSettings { UploadPath = "C:\\Temp" });
3645

37-
new FileRepository(settings, server);
46+
new FileRepository(settings, server, mimeTypeLookup);
3847

3948
//Act
4049

src/FunnelWeb.Tests/DatabaseDeployer/DatabaseUpgradeDetectorTests.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22
using System.Collections.Generic;
33
using System.Data;
44
using System.Linq;
5-
using Autofac.Features.Indexed;
65
using DbUp.Engine;
76
using FunnelWeb.DatabaseDeployer;
8-
using FunnelWeb.DatabaseDeployer.DbProviders;
7+
using FunnelWeb.Providers.Database;
98
using NSubstitute;
109
using NUnit.Framework;
1110

@@ -15,23 +14,20 @@ namespace FunnelWeb.Tests.DatabaseDeployer
1514
public class DatabaseUpgradeDetectorTests
1615
{
1716
private DatabaseUpgradeDetector detector;
18-
private IConnectionStringProvider connectionString;
17+
private IConnectionStringSettings connectionString;
1918
private IApplicationDatabase applicationDatabase;
2019
private readonly List<ScriptedExtension> extensions = new List<ScriptedExtension>();
21-
private IIndex<string, IDatabaseProvider> databaseProviderLookup;
2220
private IDatabaseProvider databaseProvider;
2321

2422
[SetUp]
2523
public void SetUp()
2624
{
27-
connectionString = Substitute.For<IConnectionStringProvider>();
25+
connectionString = Substitute.For<IConnectionStringSettings>();
2826
connectionString.Schema = "dbo";
2927
connectionString.DatabaseProvider = "sql";
3028
applicationDatabase = Substitute.For<IApplicationDatabase>();
31-
databaseProviderLookup = Substitute.For<IIndex<string, IDatabaseProvider>>();
3229
databaseProvider = Substitute.For<IDatabaseProvider>();
33-
databaseProviderLookup[Arg.Any<string>()].Returns(databaseProvider);
34-
detector = new DatabaseUpgradeDetector(connectionString, extensions, applicationDatabase, databaseProviderLookup);
30+
detector = new DatabaseUpgradeDetector(connectionString, extensions, applicationDatabase, databaseProvider);
3531
}
3632

3733
[Test]

src/FunnelWeb.Tests/Helpers/ITemporaryDatabase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace FunnelWeb.Tests.Helpers
88
{
9-
public interface ITemporaryDatabase : IDisposable, IConnectionStringProvider
9+
public interface ITemporaryDatabase : IDisposable, IConnectionStringSettings
1010
{
1111
void WithRepository(Action<IRepository> callback);
1212
void WithSession(Action<ISession> callback);

src/FunnelWeb.Tests/Helpers/QueryIntegrationTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using NUnit.Framework;
32

43
namespace FunnelWeb.Tests.Helpers

src/FunnelWeb.Tests/Helpers/SqlCeTemporaryDatabase.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
using DbUp.Engine.Output;
88
using DbUp.Helpers;
99
using FunnelWeb.DatabaseDeployer;
10-
using FunnelWeb.DatabaseDeployer.DbProviders;
1110
using FunnelWeb.Model.Repositories;
11+
using FunnelWeb.Providers;
12+
using FunnelWeb.Providers.Database;
1213
using FunnelWeb.Repositories;
1314
using NHibernate;
1415

@@ -33,7 +34,8 @@ public SqlCeTemporaryDatabase()
3334
database = new AdHocSqlRunner(() => new SqlCeConnection(connectionString), null);
3435

3536
var containerBuilder = new ContainerBuilder();
36-
containerBuilder.RegisterInstance(this).As<IConnectionStringProvider>();
37+
containerBuilder.RegisterInstance(this).As<IConnectionStringSettings>();
38+
containerBuilder.RegisterModule(new InternalProviderRegistrationModule());
3739
containerBuilder.RegisterModule(new RepositoriesModule());
3840
containerBuilder.RegisterModule(new DatabaseModule());
3941
container = containerBuilder.Build();
@@ -90,7 +92,7 @@ public string Schema
9092
set { }
9193
}
9294

93-
public string ReadOnlyReason { get; private set; }
95+
public string ReadOnlyReason { get; set; }
9496

9597
public AdHocSqlRunner AdHoc
9698
{

src/FunnelWeb.Tests/LifetimeJustifications.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@
1313
using FunnelWeb.DatabaseDeployer;
1414
using FunnelWeb.Eventing;
1515
using FunnelWeb.Model.Repositories;
16+
using FunnelWeb.Providers;
17+
using FunnelWeb.Providers.Database;
18+
using FunnelWeb.Providers.File;
1619
using FunnelWeb.Repositories;
1720
using FunnelWeb.Settings;
1821
using FunnelWeb.Tasks;
22+
using FunnelWeb.Utilities;
1923
using FunnelWeb.Web.Application.Authentication;
2024
using FunnelWeb.Web.Application.Mime;
2125
using FunnelWeb.Web.Application.Mvc;
@@ -59,6 +63,7 @@ public void IntializeTheContainerJustLikeInGlobalAsax()
5963
builder.RegisterModule(new RepositoriesModule());
6064
builder.RegisterModule(new EventingModule());
6165
builder.RegisterModule(new ExtensionsModule("C:\\Foo", routes));
66+
builder.RegisterModule(new InternalProviderRegistrationModule());
6267

6368
//// FunnelWeb Web
6469
builder.RegisterModule(new WebAbstractionsModule());
@@ -83,9 +88,12 @@ public void ComponentsThatShouldBeSingletons()
8388

8489
// The following are singletons just because there's no need to have more than one - if you have a good
8590
// reason feel free to change
86-
IsSingleton<IConnectionStringProvider>("This component uses the bootstrap settings to store the connection string. Since the bootstrap settings are opened/closed on the fly, there only needs to be one instance of this type.");
87-
IsSingleton<IBootstrapSettings>("This component opens/closes the XML file on the fly; there's no need to have more than one.");
91+
IsSingleton<IConnectionStringSettings>("This component uses the bootstrap settings to store the connection string. Since the bootstrap settings are opened/closed on the fly, there only needs to be one instance of this type.");
92+
IsSingleton<IConfigSettings>("This component opens/closes the XML file on the fly; there's no need to have more than one.");
8893
IsSingleton<IMimeTypeLookup>("It just calls the registry/a static list - no need for more than one");
94+
95+
IsSingleton<IProviderInfo<IDatabaseProvider>>("This type extends the contains, no need to create multiple times");
96+
IsSingleton<IProviderInfo<IFileRepository>>("This type extends the contains, no need to create multiple times");
8997
}
9098

9199
[Test]

0 commit comments

Comments
 (0)