public override IUsersStorageProviderV30 GetProvider( ) { SqlServerUsersStorageProvider prov = new SqlServerUsersStorageProvider( ); prov.Init(MockHost( ), ConnString + InitialCatalog); return(prov); }
public void Init_Upgrade( ) { FixtureTearDown( ); SqlConnection cn = new SqlConnection(ConnString); cn.Open( ); SqlCommand cmd = cn.CreateCommand( ); cmd.CommandText = "create database [ScrewTurnWikiTest];"; cmd.ExecuteNonQuery( ); cn.Close( ); cn = new SqlConnection(ConnString + InitialCatalog); cn.Open( ); cmd = cn.CreateCommand( ); cmd.CommandText = @"CREATE TABLE [UsersProviderVersion] ( [Version] varchar(12) PRIMARY KEY ); INSERT INTO [UsersProviderVersion] ([Version]) VALUES ('Irrelevant'); CREATE TABLE [User] ( [Username] nvarchar(128) PRIMARY KEY, [PasswordHash] varchar(128) NOT NULL, [Email] varchar(128) NOT NULL, [DateTime] datetime NOT NULL, [Active] bit NOT NULL DEFAULT ((0)), [Admin] bit NOT NULL DEFAULT ((0)) ); INSERT INTO [User] ([Username], [PasswordHash], [Email], [DateTime], [Active], [Admin]) values ('user', 'hash', '*****@*****.**', '2008/12/27 12:12:12', 'true', 'false'); INSERT INTO [User] ([Username], [PasswordHash], [Email], [DateTime], [Active], [Admin]) values ('user2', 'hash2', '*****@*****.**', '2008/12/27 12:12:13', 'false', 'true');"; bool done = false; try { cmd.ExecuteNonQuery( ); done = true; } catch (SqlException sqlex) { Console.WriteLine(sqlex.ToString( )); } finally { cn.Close( ); } if (!done) { throw new Exception("Could not create v2 test database"); } MockRepository mocks = new MockRepository( ); IHostV30 host = mocks.DynamicMock <IHostV30>( ); Expect.Call(host.GetSettingValue(SettingName.AdministratorsGroup)).Return("Administrators").Repeat.Once( ); Expect.Call(host.GetSettingValue(SettingName.UsersGroup)).Return("Users").Repeat.Once( ); Expect.Call(host.UpgradeSecurityFlagsToGroupsAcl(null, null)).IgnoreArguments( ).Repeat.Times(1).Return(true); mocks.Replay(host); IUsersStorageProviderV30 prov = new SqlServerUsersStorageProvider( ); prov.Init(host, ConnString + InitialCatalog); mocks.Verify(host); UserInfo[] users = prov.GetUsers( ); Assert.AreEqual(2, users.Length, "Wrong user count"); Assert.AreEqual("user", users[0].Username, "Wrong username"); Assert.IsNull(users[0].DisplayName, "Display name should be null"); Assert.AreEqual("*****@*****.**", users[0].Email, "Wrong email"); Assert.AreEqual("2008/12/27 12:12:12", users[0].DateTime.ToString("yyyy'/'MM'/'dd' 'HH':'mm':'ss"), "Wrong date/time"); Assert.IsTrue(users[0].Active, "User should be active"); Assert.AreEqual(1, users[0].Groups.Length, "Wrong group count"); Assert.AreEqual("Users", users[0].Groups[0], "Wrong group"); Assert.AreEqual("user2", users[1].Username, "Wrong username"); Assert.IsNull(users[1].DisplayName, "Display name should be null"); Assert.AreEqual("*****@*****.**", users[1].Email, "Wrong email"); Assert.AreEqual("2008/12/27 12:12:13", users[1].DateTime.ToString("yyyy'/'MM'/'dd' 'HH':'mm':'ss"), "Wrong date/time"); Assert.IsFalse(users[1].Active, "User should be inactive"); Assert.AreEqual(1, users[1].Groups.Length, "Wrong group count"); Assert.AreEqual("Administrators", users[1].Groups[0], "Wrong group"); }
public void Init_Upgrade() { FixtureTearDown(); SqlConnection cn = new SqlConnection(ConnString); cn.Open(); SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = "create database [ScrewTurnWikiTest];"; cmd.ExecuteNonQuery(); cn.Close(); cn = new SqlConnection(ConnString + InitialCatalog); cn.Open(); cmd = cn.CreateCommand(); cmd.CommandText = @"CREATE TABLE [UsersProviderVersion] ( [Version] varchar(12) PRIMARY KEY ); INSERT INTO [UsersProviderVersion] ([Version]) VALUES ('Irrelevant'); CREATE TABLE [User] ( [Username] nvarchar(128) PRIMARY KEY, [PasswordHash] varchar(128) NOT NULL, [Email] varchar(128) NOT NULL, [DateTime] datetime NOT NULL, [Active] bit NOT NULL DEFAULT ((0)), [Admin] bit NOT NULL DEFAULT ((0)) ); INSERT INTO [User] ([Username], [PasswordHash], [Email], [DateTime], [Active], [Admin]) values ('user', 'hash', '*****@*****.**', '2008/12/27 12:12:12', 'true', 'false'); INSERT INTO [User] ([Username], [PasswordHash], [Email], [DateTime], [Active], [Admin]) values ('user2', 'hash2', '*****@*****.**', '2008/12/27 12:12:13', 'false', 'true');"; bool done = false; try { cmd.ExecuteNonQuery(); done = true; } catch(SqlException sqlex) { Console.WriteLine(sqlex.ToString()); } finally { cn.Close(); } if(!done) throw new Exception("Could not create v2 test database"); MockRepository mocks = new MockRepository(); IHostV30 host = mocks.DynamicMock<IHostV30>(); Expect.Call(host.GetSettingValue(SettingName.AdministratorsGroup)).Return("Administrators").Repeat.Once(); Expect.Call(host.GetSettingValue(SettingName.UsersGroup)).Return("Users").Repeat.Once(); Expect.Call(host.UpgradeSecurityFlagsToGroupsAcl(null, null)).IgnoreArguments().Repeat.Times(1).Return(true); mocks.Replay(host); IUsersStorageProviderV30 prov = new SqlServerUsersStorageProvider(); prov.Init(host, ConnString + InitialCatalog); mocks.Verify(host); UserInfo[] users = prov.GetUsers(); Assert.AreEqual(2, users.Length, "Wrong user count"); Assert.AreEqual("user", users[0].Username, "Wrong username"); Assert.IsNull(users[0].DisplayName, "Display name should be null"); Assert.AreEqual("*****@*****.**", users[0].Email, "Wrong email"); Assert.AreEqual("2008/12/27 12:12:12", users[0].DateTime.ToString("yyyy'/'MM'/'dd' 'HH':'mm':'ss"), "Wrong date/time"); Assert.IsTrue(users[0].Active, "User should be active"); Assert.AreEqual(1, users[0].Groups.Length, "Wrong group count"); Assert.AreEqual("Users", users[0].Groups[0], "Wrong group"); Assert.AreEqual("user2", users[1].Username, "Wrong username"); Assert.IsNull(users[1].DisplayName, "Display name should be null"); Assert.AreEqual("*****@*****.**", users[1].Email, "Wrong email"); Assert.AreEqual("2008/12/27 12:12:13", users[1].DateTime.ToString("yyyy'/'MM'/'dd' 'HH':'mm':'ss"), "Wrong date/time"); Assert.IsFalse(users[1].Active, "User should be inactive"); Assert.AreEqual(1, users[1].Groups.Length, "Wrong group count"); Assert.AreEqual("Administrators", users[1].Groups[0], "Wrong group"); }
public void SetUp_InvalidConnString(string c) { SqlServerUsersStorageProvider prov = new SqlServerUsersStorageProvider(); prov.SetUp(MockHost(), c); }
public override IUsersStorageProviderV30 GetProvider() { SqlServerUsersStorageProvider prov = new SqlServerUsersStorageProvider(); prov.Init(MockHost(), ConnString + InitialCatalog); return prov; }