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

MongoDB test ok.

parent f32205a8
......@@ -9,57 +9,15 @@ namespace Plus.MongoDb.Test
public IMongoClient Client { 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()
{
var settings = new MongoClientSettings();
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);
......
using Plus.Modules;
using Plus.MongoDb.Test.Mappers;
using System.Reflection;
namespace Plus.MongoDb.Test
......@@ -9,6 +10,8 @@ namespace Plus.MongoDb.Test
public override void PreInitialize()
{
IocManager.Register<BlogMongoDbDatabaseProvider>();
ArticleMapper.CreateMappings();
}
public override void Initialize()
......
......@@ -15,6 +15,8 @@ namespace Plus.MongoDb.Test
_blogMongoDbDatabaseProvider = blogMongoDbDatabaseProvider;
}
public IMongoClient Client => _blogMongoDbDatabaseProvider.Client;
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 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Plus.MongoDb" Version="1.0.3" />
</ItemGroup>
<ItemGroup>
<Folder Include="Mappers\" />
<PackageReference Include="MongoDB.Driver" Version="2.8.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Plus.MongoDB\Plus.MongoDb.csproj" />
<ProjectReference Include="..\..\src\Plus\Plus.csproj" />
<ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.csproj" />
</ItemGroup>
......
......@@ -5,8 +5,8 @@ namespace Plus.MongoDb.Test.Repositories
{
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 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Plus.MongoDb.Test\Plus.MongoDb.Test.csproj" />
<ProjectReference Include="..\..\src\Plus.Extensions\Plus.Extensions.csproj" />
<ProjectReference Include="..\..\src\Plus.Log4Net\Plus.Log4Net.csproj" />
<ProjectReference Include="..\Plus.Core.Tests\Plus.Core.Tests.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" />
</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