Fix test failures

This commit is contained in:
Kiran Challa 2016-03-01 09:32:01 -08:00
parent 4b348efa59
commit 7ac771155d
2 changed files with 27 additions and 9 deletions

View File

@ -1,5 +1,5 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System; using System;
using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.DependencyInjection.Extensions;
@ -25,15 +25,16 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddOptions(); services.AddOptions();
services.TryAddSingleton<IStringLocalizerFactory, ResourceManagerStringLocalizerFactory>(); AddLocalizationServices(services);
services.TryAddTransient(typeof(IStringLocalizer<>), typeof(StringLocalizer<>));
} }
/// <summary> /// <summary>
/// Adds services required for application localization. /// Adds services required for application localization.
/// </summary> /// </summary>
/// <param name="services">The <see cref="IServiceCollection"/> to add the services to.</param> /// <param name="services">The <see cref="IServiceCollection"/> to add the services to.</param>
/// <param name="setupAction">An <see cref="Action{LocalizationOptions}"/> to configure the <see cref="LocalizationOptions"/>.</param> /// <param name="setupAction">
/// An <see cref="Action{LocalizationOptions}"/> to configure the <see cref="LocalizationOptions"/>.
/// </param>
public static void AddLocalization( public static void AddLocalization(
this IServiceCollection services, this IServiceCollection services,
Action<LocalizationOptions> setupAction) Action<LocalizationOptions> setupAction)
@ -42,12 +43,27 @@ namespace Microsoft.Extensions.DependencyInjection
{ {
throw new ArgumentNullException(nameof(services)); throw new ArgumentNullException(nameof(services));
} }
if (setupAction == null) if (setupAction == null)
{ {
throw new ArgumentNullException(nameof(setupAction)); throw new ArgumentNullException(nameof(setupAction));
} }
services.AddLocalization(); AddLocalizationServices(services, setupAction);
}
// To enable unit testing
internal static void AddLocalizationServices(IServiceCollection services)
{
services.TryAddSingleton<IStringLocalizerFactory, ResourceManagerStringLocalizerFactory>();
services.TryAddTransient(typeof(IStringLocalizer<>), typeof(StringLocalizer<>));
}
internal static void AddLocalizationServices(
IServiceCollection services,
Action<LocalizationOptions> setupAction)
{
AddLocalizationServices(services);
services.Configure(setupAction); services.Configure(setupAction);
} }
} }

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Linq; using System.Linq;
@ -17,7 +17,7 @@ namespace Microsoft.Extensions.Localization.Test
var collection = new ServiceCollection(); var collection = new ServiceCollection();
// Act // Act
collection.AddLocalization(); LocalizationServiceCollectionExtensions.AddLocalizationServices(collection);
// Assert // Assert
var services = collection.ToList(); var services = collection.ToList();
@ -39,7 +39,9 @@ namespace Microsoft.Extensions.Localization.Test
var collection = new ServiceCollection(); var collection = new ServiceCollection();
// Act // Act
collection.AddLocalization(options => options.ResourcesPath = "Resources"); LocalizationServiceCollectionExtensions.AddLocalizationServices(
collection,
options => options.ResourcesPath = "Resources");
// Assert // Assert
var services = collection.ToList(); var services = collection.ToList();