Browse Source

Added tests and refactored.

pull/81/head
Halil İbrahim Kalkan 10 years ago
parent
commit
562ef7c78b
  1. 2
      src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs
  2. 6
      src/Volo.Abp/Volo/Abp/Data/ConnectionStrings.cs
  3. 17
      src/Volo.Abp/Volo/Abp/Data/DatabaseNameAttribute.cs
  4. 4
      src/Volo.Abp/Volo/Abp/Data/DbConnectionOptions.cs
  5. 3
      src/Volo.DependencyInjection/Volo/DependencyInjection/DefaultConventionalRegistrar.cs
  6. 34
      test/Volo.Abp.Tests/Volo/Abp/Data/DatabaseNameAttribute_Tests.cs

2
src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbContext.cs

@ -1,9 +1,11 @@
using AbpDesk.Tickets;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
namespace AbpDesk.EntityFrameworkCore
{
[DatabaseName(ConnectionStrings.DefaultConnectionStringName)]
public class AbpDeskDbContext : AbpDbContext<AbpDeskDbContext>
{
public DbSet<Ticket> Tickets { get; set; }

6
src/Volo.Abp/Volo/Abp/Data/ConnectionStringsDictionary.cs → src/Volo.Abp/Volo/Abp/Data/ConnectionStrings.cs

@ -2,10 +2,10 @@
namespace Volo.Abp.Data
{
public class ConnectionStringsDictionary : Dictionary<string, string>
public class ConnectionStrings : Dictionary<string, string>
{
private const string DefaultConnectionStringName = "Default";
public const string DefaultConnectionStringName = "Default";
public string Default
{
get { return this[DefaultConnectionStringName]; }

17
src/Volo.Abp/Volo/Abp/Data/DatabaseNameAttribute.cs

@ -1,15 +1,18 @@
using System;
using System.Linq;
using System.Reflection;
using JetBrains.Annotations;
namespace Volo.Abp.Data
{
public class DatabaseNameAttribute : Attribute
{
[NotNull]
public string Name { get; }
public DatabaseNameAttribute(string name)
public DatabaseNameAttribute([NotNull] string name)
{
Check.NotNull(name, nameof(name));
Name = name;
}
@ -20,14 +23,14 @@ namespace Volo.Abp.Data
public static string GetDatabaseName(Type type)
{
var typeInfo = type.GetTypeInfo();
var databaseNameAttribute = typeInfo.GetCustomAttributes<DatabaseNameAttribute>().FirstOrDefault();
if (databaseNameAttribute != null)
var databaseNameAttribute = type.GetTypeInfo().GetCustomAttribute<DatabaseNameAttribute>();
if (databaseNameAttribute == null)
{
return databaseNameAttribute.Name;
return type.FullName;
}
return type.FullName;
return databaseNameAttribute.Name;
}
}
}

4
src/Volo.Abp/Volo/Abp/Data/DbConnectionOptions.cs

@ -2,11 +2,11 @@
{
public class DbConnectionOptions
{
public ConnectionStringsDictionary ConnectionStrings { get; set; }
public ConnectionStrings ConnectionStrings { get; set; }
public DbConnectionOptions()
{
ConnectionStrings = new ConnectionStringsDictionary();
ConnectionStrings = new ConnectionStrings();
}
}
}

3
src/Volo.DependencyInjection/Volo/DependencyInjection/DefaultConventionalRegistrar.cs

@ -1,5 +1,4 @@
using System;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
@ -17,7 +16,7 @@ namespace Volo.DependencyInjection
return;
}
var dependencyAttribute = typeInfo.GetCustomAttributes<DependencyAttribute>(true).FirstOrDefault(); //TODO: Use GetCustomAttribute instead?
var dependencyAttribute = typeInfo.GetCustomAttribute<DependencyAttribute>(true);
var lifeTime = dependencyAttribute?.Lifetime ?? GetServiceLifetimeFromInterfaces(type);
if (lifeTime == null)

34
test/Volo.Abp.Tests/Volo/Abp/Data/DatabaseNameAttribute_Tests.cs

@ -0,0 +1,34 @@
using Shouldly;
using Xunit;
namespace Volo.Abp.Data
{
public class DatabaseNameAttribute_Tests
{
[Fact]
public void Should_Get_Class_FullName_If_Not_DatabaseNameAttribute_Specified()
{
DatabaseNameAttribute
.GetDatabaseName<MyClassWithoutDatabaseName>()
.ShouldBe(typeof(MyClassWithoutDatabaseName).FullName);
}
[Fact]
public void Should_Get_DatabaseName_If_Not_Specified()
{
DatabaseNameAttribute
.GetDatabaseName<MyClassWithDatabaseName>()
.ShouldBe("MyDb");
}
private class MyClassWithoutDatabaseName
{
}
[DatabaseName("MyDb")]
private class MyClassWithDatabaseName
{
}
}
}
Loading…
Cancel
Save