using
System;
using
Microsoft.VisualStudio.TestTools.UnitTesting;
using
Rhino.Mocks;
using
SystemInfo;
using
SystemInterface.Microsoft.Win32;
namespace
DotNetFrameworkTest
{
/// <summary>
///This is a test class for DotNetFrameworkTest and is intended
///to contain all DotNetFrameworkTest Unit Tests
///</summary>
[TestClass()]
public
class
DotNetFrameworkTest
{
#region Constructor tests
/// <summary>
///A test for DotNetFramework Constructor
///</summary>
[TestMethod()]
public
void
DotNetFrameworkConstructorTest()
{
DotNetFramework target =
new
DotNetFramework();
Assert.IsNotNull(target);
}
#endregion
#region IAccessTheRegistry interface items test
/// <summary>
///A test for ChangeBaseKey
///</summary>
[TestMethod()]
public
void
BaseKeyAndChangeBaseKeyTest()
{
DotNetFramework target =
new
DotNetFramework();
IRegistryKey defaultBaseKey = target.BaseKey;
IRegistryKey inBaseKey = MockRepository.GenerateMock<IRegistryKey>();
target.ChangeBaseKey(inBaseKey);
Assert.AreNotEqual(target.BaseKey, defaultBaseKey);
Assert.AreEqual(target.BaseKey, inBaseKey);
}
#endregion
#region FoundDotNet11 tests
/// <summary>
///A test for FoundDotNet11 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet11_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET11_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet11;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET11_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET11_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet11 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet11_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET11_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet11;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET11_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET11_VERSION));
}
#endregion
#region FoundDotNet20 tests
/// <summary>
///A test for FoundDotNet20 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet20_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet20;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet20_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
}
#endregion
#region FoundDOtNet20SP1 tests
/// <summary>
///A test for FoundDotNet20SP1 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP1_Test_KeyExistsWithSP1()
{
bool
isInstalled =
true
;
int
? sp = 1;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet20SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20SP1 mocking the key so it should return false due to no service pack
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP1_Test_KeyExistsWithoutSP1()
{
bool
isInstalled =
true
;
int
? sp =
null
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20SP1 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP1_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
}
#endregion
#region FoundDOtNet20SP2 tests
/// <summary>
///A test for FoundDotNet20SP2 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP2_Test_KeyExistsWithSP2()
{
bool
isInstalled =
true
;
int
? sp = 2;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet20SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20SP2 mocking the key so it should return false because it only has SP1
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP2_Test_KeyExistsWithSP1()
{
bool
isInstalled =
true
;
int
? sp = 1;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20SP2 mocking the key so it should return false due to no service pack
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP2_Test_KeyExistsWithoutSP()
{
bool
isInstalled =
true
;
int
? sp =
null
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet20SP2 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet20SP2_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET20_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet20SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET20_VERSION));
}
#endregion
#region FoundDotNet30 tests
/// <summary>
///A test for FoundDotNet30 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet30_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet30;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet30_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
}
#endregion
#region FoundDOtNet30SP1 tests
/// <summary>
///A test for FoundDotNet30SP1 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP1_Test_KeyExistsWithSP1()
{
bool
isInstalled =
true
;
int
? sp = 1;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet30SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30SP1 mocking the key so it should return false due to no service pack
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP1_Test_KeyExistsWithoutSP()
{
bool
isInstalled =
true
;
int
? sp =
null
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30SP1 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP1_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
}
#endregion
#region FoundDOtNet30SP2 tests
/// <summary>
///A test for FoundDotNet30SP2 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP2_Test_KeyExistsWithSP2()
{
bool
isInstalled =
true
;
int
? sp = 2;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet30SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30SP2 mocking the key so it should return false because it only has SP1
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP2_Test_KeyExistsWithSP1()
{
bool
isInstalled =
true
;
int
? sp = 1;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30SP2 mocking the key so it should return false due to no service pack
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP2_Test_KeyExistsWithoutSP()
{
bool
isInstalled =
true
;
int
? sp =
null
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet30SP2 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet30SP2_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET30_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet30SP2;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET30_VERSION));
}
#endregion
#region FoundDotNet35 tests
/// <summary>
///A test for FoundDotNet35 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet35_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET35_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet35;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet35 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet35_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET35_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet35;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
}
#endregion
#region FoundDOtNet35SP1 tests
/// <summary>
///A test for FoundDotNet35SP1 mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet35SP1_Test_KeyExistsWithSP1()
{
bool
isInstalled =
true
;
int
? sp = 1;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET35_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet35SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet35SP1 mocking the key so it should return false due to no service pack
///</summary>
[TestMethod()]
public
void
FoundDotNet35SP1_Test_KeyExistsWithoutSP()
{
bool
isInstalled =
true
;
int
? sp =
null
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET35_VERSION, isInstalled, sp);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet35SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet35SP1 mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet35SP1_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET35_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet35SP1;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET35_VERSION));
}
#endregion
#region FoundDotNet 4 Full tests
/// <summary>
///A test for FoundDotNet4 (full) mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet4_Full_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET40_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet4;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet4 (full) mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet4_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET40_VERSION, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet4;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION));
}
#endregion
#region FoundDotNet4 Client tests
/// <summary>
///A test for FoundDotNet4Client mocking the key so it should return true
///</summary>
[TestMethod()]
public
void
FoundDotNet4Client_Test_KeyExists()
{
bool
isInstalled =
true
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
true
;
bool
actual = target.FoundDotNet4Client;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT));
IRegistryKey innerkey = key.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT);
innerkey.AssertWasCalled(x => x.GetValue(
"Install"
));
innerkey.AssertWasNotCalled(x => x.GetValue(
"SP"
));
}
/// <summary>
///A test for FoundDotNet4 (client) mocking the lack of a key so it should return false
///</summary>
[TestMethod()]
public
void
FoundDotNet4Client_Test_KeyDoesNotExist()
{
bool
isInstalled =
false
;
DotNetFramework target =
new
DotNetFramework();
IRegistryKey key = CreateDotNetRegistryOpenSubKeyMock(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT, isInstalled);
target.ChangeBaseKey(key);
bool
expected =
false
;
bool
actual = target.FoundDotNet4Client;
Assert.AreEqual(actual, expected);
key.AssertWasCalled(x => x.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT));
Assert.IsNull(key.OpenSubKey(DotNetFramework.REGPATH_DOTNET40_VERSION_CLIENT));
}
#endregion
#region HasDotNetFrameworkTest
/// <summary>
///A test for HasDotNetFramework
///</summary>
[TestMethod()]
public
void
HasDotNetFrameworkTest()
{
}
#endregion
#region Test Helper Functions
/// <summary>
/// Mock to pretend to be this registry subkey:
/// Hive: HKLM
///
/// No stubbing is preconfigured
/// </summary>
/// <returns>IRegistryKey</returns>
private
IRegistryKey CreateMockOfHKLM()
{
IRegistryKey hklmMock = MockRepository.GenerateMock<IRegistryKey>();
hklmMock.Stub(x => x.Name).Return(
"HKEY_LOCAL_MACHINE"
);
return
hklmMock;
}
/// <summary>
/// Mock to pretend to be this registry subkey:
/// Hive: HKLM
///
/// It has stubs preconfigured
/// </summary>
/// <returns>IRegistry that is a mock of HKLM with IIS Version stubs.</returns>
private
IRegistryKey CreateDotNetRegistryOpenSubKeyMock(
string
inSubkey,
bool
inIsInstalled =
true
,
int
? inSP =
null
)
{
IRegistryKey hklmMock = CreateMockOfHKLM();
IRegistryKey dotNetMock =
null
;
if
(inIsInstalled)
{
dotNetMock = CreateDotNetRegistryGetValueMock(inSubkey, inSP);
}
hklmMock.Stub(x => x.OpenSubKey(inSubkey)).Return(dotNetMock);
return
hklmMock;
}
private
IRegistryKey CreateDotNetRegistryGetValueMock(
string
inSubkey,
int
? inSP)
{
IRegistryKey dotNetMock = MockRepository.GenerateMock<IRegistryKey>();
dotNetMock.Stub(x => x.Name).Return(
@"HKEY_LOCAL_MACHINE\"
+ inSubkey);
dotNetMock.Stub(x => x.GetValueNames()).Return(
new
String[] {
"Install"
,
"SP"
});
dotNetMock.Stub(x => x.GetValue(
"Install"
)).Return(1);
if
(
null
!= inSP)
{
dotNetMock.Stub(x => x.GetValue(
"SP"
)).Return(inSP);
}
return
dotNetMock;
}
#endregion
}
}