Przykładowa część strony wygląda więc tak:
<head>
<title>Input</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
Źródło, z którego wziąłem rozwiązanie.
<head>
<title>Input</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
public interface IConfigurationManagerAby pokazać bardziej realistyczny przykład użycia, utworzyłem klasę BL (Business Logic), która do swojej pracy wykorzystuje dane, pobrane z web.config. Założyłem również, że plik web.config posiada wpis o nazwie customAppSetting z wartością "test".
{
NameValueCollection AppSettings
{
get;
}
string ConnectionStrings(string name);
T GetSection<T>(string sectionName);
}
public class ConfigurationManagerWrapper : IConfigurationManager
{
public NameValueCollection AppSettings
{
get
{
return ConfigurationManager.AppSettings;
}
}
public string ConnectionStrings(string name)
{
return ConfigurationManager.ConnectionStrings[name].ConnectionString;
}
public T GetSection<T>(string sectionName)
{
return (T)ConfigurationManager.GetSection(sectionName);
}
}
using System;Praktyczne wykorzystanie klasy BL przez solucję produkcyjną:
using System.Collections.Generic;
using System.Linq;
using System.Web;
public class BL
{
private readonly IConfigurationManager configuration;
public BL()
{
this.configuration = new ConfigurationManagerWrapper();
}
public BL(IConfigurationManager configuration)
{
this.configuration = configuration;
}
public string GetAppSetting(string customAppSettingName)
{
string customAppSetting = configuration.AppSettings[customAppSettingName];
//TODO: some business logic
return customAppSetting;
}
}
private void ProductionWebConfig()Praktyczne wykorzystanie klasy BL przez bibliotekę testującą:
{
BL businessLogic = new BL(new ConfigurationManagerWrapper());
string customAppSetting = businessLogic.GetAppSetting("customAppSetting");
}
[Fact]
public void GetAppSetting_PositiveString_StringTest()
{
var customAppSetting = new NameValueCollection { { "customAppSetting", "test" } };
IConfigurationManager fakeConfiguration = A.Fake<IConfigurationManager>();
A.CallTo(() => fakeConfiguration.AppSettings).Returns(customAppSetting);
BL bl = new BL(fakeConfiguration);
string fakeString = bl.GetAppSetting("customAppSetting");
string realString = "test";
Assert.Equal(fakeString, realString);
}