Commit dff51e45 authored by 阿星Plus's avatar 阿星Plus

MongoDB test ok.

parent f32205a8
...@@ -9,57 +9,15 @@ namespace Plus.MongoDb.Test ...@@ -9,57 +9,15 @@ namespace Plus.MongoDb.Test
public IMongoClient Client { get; } public IMongoClient Client { get; }
public IMongoDatabase Database { get; } public IMongoDatabase Database { get; }
MongoDatabase IMongoDatabaseProvider.Database
{
get
{
return null;
}
}
//public MongoDatabase Database
//{
// get
// {
// var servers = new List<MongoServerAddress>();
// AppSettings.MongoDb.Servers.ForEach(x =>
// {
// servers.Add(new MongoServerAddress(x.Host, x.Port));
// });
// var settings = new MongoClientSettings();
// settings.Servers = servers;
// if (AppSettings.MongoDb.Username.IsNotNullOrEmpty())
// {
// settings.Credential = MongoCredential.CreateCredential("admin", AppSettings.MongoDb.Username, AppSettings.MongoDb.Password);
// }
// if (AppSettings.MongoDb.ConnectionMode.ToLower() == "replicaset")
// {
// settings.ConnectionMode = ConnectionMode.ReplicaSet;
// settings.ReadPreference = new ReadPreference(ReadPreferenceMode.SecondaryPreferred);
// }
// var client = new MongoClient(settings);
// var database = client.GetDatabase(AppSettings.MongoDb.DatabaseName);
// return Database;
// }
//}
public BlogMongoDbDatabaseProvider() public BlogMongoDbDatabaseProvider()
{ {
var settings = new MongoClientSettings();
var servers = new List<MongoServerAddress>(); var servers = new List<MongoServerAddress>();
AppSettings.MongoDb.Servers.ForEach(x => AppSettings.MongoDb.Servers.ForEach(x =>
{ {
servers.Add(new MongoServerAddress(x.Host, x.Port)); servers.Add(new MongoServerAddress(x.Host, x.Port));
}); });
var settings = new MongoClientSettings();
settings.Servers = servers; settings.Servers = servers;
if (AppSettings.MongoDb.Username.IsNotNullOrEmpty()) if (AppSettings.MongoDb.Username.IsNotNullOrEmpty())
{ {
settings.Credential = MongoCredential.CreateCredential("admin", AppSettings.MongoDb.Username, AppSettings.MongoDb.Password); settings.Credential = MongoCredential.CreateCredential("admin", AppSettings.MongoDb.Username, AppSettings.MongoDb.Password);
......
using Plus.Modules; using Plus.Modules;
using Plus.MongoDb.Test.Mappers;
using System.Reflection; using System.Reflection;
namespace Plus.MongoDb.Test namespace Plus.MongoDb.Test
...@@ -9,6 +10,8 @@ namespace Plus.MongoDb.Test ...@@ -9,6 +10,8 @@ namespace Plus.MongoDb.Test
public override void PreInitialize() public override void PreInitialize()
{ {
IocManager.Register<BlogMongoDbDatabaseProvider>(); IocManager.Register<BlogMongoDbDatabaseProvider>();
ArticleMapper.CreateMappings();
} }
public override void Initialize() public override void Initialize()
......
...@@ -15,6 +15,8 @@ namespace Plus.MongoDb.Test ...@@ -15,6 +15,8 @@ namespace Plus.MongoDb.Test
_blogMongoDbDatabaseProvider = blogMongoDbDatabaseProvider; _blogMongoDbDatabaseProvider = blogMongoDbDatabaseProvider;
} }
public IMongoClient Client => _blogMongoDbDatabaseProvider.Client;
public IMongoDatabase Database => _blogMongoDbDatabaseProvider.Database; public IMongoDatabase Database => _blogMongoDbDatabaseProvider.Database;
} }
......
using MongoDB.Bson.Serialization;
using MongoDB.Bson.Serialization.IdGenerators;
using Plus.Core.Tests.Domain;
namespace Plus.MongoDb.Test.Mappers
{
internal static class ArticleMapper
{
private static volatile bool _mappedBefore;
private static readonly object _syncObj = new object();
public static void CreateMappings()
{
lock (_syncObj)
{
if (_mappedBefore)
return;
CreateMappingsInternal();
_mappedBefore = true;
}
}
private static void CreateMappingsInternal()
{
BsonClassMap.RegisterClassMap<Article>(u =>
{
u.AutoMap();
u.MapIdMember(x => x.Id).SetIdGenerator(ObjectIdGenerator.Instance);
u.SetIgnoreExtraElements(true);
});
}
}
}
\ No newline at end of file
...@@ -5,14 +5,11 @@ ...@@ -5,14 +5,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Plus.MongoDb" Version="1.0.3" /> <PackageReference Include="MongoDB.Driver" Version="2.8.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Mappers\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\Plus.MongoDB\Plus.MongoDb.csproj" />
<ProjectReference Include="..\..\src\Plus\Plus.csproj" /> <ProjectReference Include="..\..\src\Plus\Plus.csproj" />
<ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.csproj" /> <ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.csproj" />
</ItemGroup> </ItemGroup>
......
...@@ -5,8 +5,8 @@ namespace Plus.MongoDb.Test.Repositories ...@@ -5,8 +5,8 @@ namespace Plus.MongoDb.Test.Repositories
{ {
public class ArticleRepository : BlogMongoDbTakeAutoIncRepositoryBase<Article>, IArticleRepository public class ArticleRepository : BlogMongoDbTakeAutoIncRepositoryBase<Article>, IArticleRepository
{ {
public ArticleRepository(BlogMongoDbDatabaseProvider databaseProvider) : base(databaseProvider) public ArticleRepository(BlogMongoDbDatabaseProvider databaseProvider) : base(databaseProvider) { }
{
} public override string CollectionName => DbConsts.DbTableName.Posts;
} }
} }
\ No newline at end of file
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\Plus.MongoDb.Test\Plus.MongoDb.Test.csproj" />
<ProjectReference Include="..\..\src\Plus.Extensions\Plus.Extensions.csproj" /> <ProjectReference Include="..\..\src\Plus.Extensions\Plus.Extensions.csproj" />
<ProjectReference Include="..\..\src\Plus.Log4Net\Plus.Log4Net.csproj" /> <ProjectReference Include="..\..\src\Plus.Log4Net\Plus.Log4Net.csproj" />
<ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.csproj" /> <ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.csproj" />
<ProjectReference Include="..\Plus.EFCore.Test\Plus.EFCore.Test.csproj" /> <ProjectReference Include="..\Plus.EFCore.Test\Plus.EFCore.Test.csproj" />
<ProjectReference Include="..\Plus.MongoDb.Test\Plus.MongoDb.Test.csproj" />
<ProjectReference Include="..\Plus.Services.Test\Plus.Services.Test.csproj" /> <ProjectReference Include="..\Plus.Services.Test\Plus.Services.Test.csproj" />
</ItemGroup> </ItemGroup>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment