Index: /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.sln
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.sln (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.sln (revision 3932)
@@ -0,0 +1,41 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Persistence", "Persistence\Persistence.csproj", "{0B9535EE-DB1E-4174-B6C3-692DE1D8D841}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Service", "Service\Service.csproj", "{E10132CA-5E9E-41F4-A855-45E5E759790A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{90873656-FC76-4759-A451-F0FCDA35CAA4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{960808E8-A742-4E78-8B29-9FADD65899A7}"
+ ProjectSection(SolutionItems) = preProject
+ HeuristicLab.Services.Authentication Prototyp.vsmdi = HeuristicLab.Services.Authentication Prototyp.vsmdi
+ LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = HeuristicLab.Services.Authentication Prototyp.vsmdi
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90873656-FC76-4759-A451-F0FCDA35CAA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90873656-FC76-4759-A451-F0FCDA35CAA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90873656-FC76-4759-A451-F0FCDA35CAA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90873656-FC76-4759-A451-F0FCDA35CAA4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Index: /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.vsmdi
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.vsmdi (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/HeuristicLab.Services.Authentication Prototyp.vsmdi (revision 3932)
@@ -0,0 +1,6 @@
+
+
+
+
+
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/LocalTestRun.testrunconfig
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/LocalTestRun.testrunconfig (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/LocalTestRun.testrunconfig (revision 3932)
@@ -0,0 +1,5 @@
+
+
+ Dies ist eine standardmäßige Testlaufkonfiguration für einen lokalen Testlauf.
+
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Persistence.csproj
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Persistence.csproj (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Persistence.csproj (revision 3932)
@@ -0,0 +1,86 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}
+ Library
+ Properties
+ Persistence
+ Persistence
+ v3.5
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+ HeuristicLabUser.dbml
+
+
+ True
+ True
+ HeuristicLabUser.dbml
+
+
+
+
+
+ MSLinqToSQLGenerator
+ HeuristicLabUser.designer.cs
+ Designer
+
+
+
+
+
+
+
+
+ HeuristicLabUser.dbml
+
+
+
+
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Properties/AssemblyInfo.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Persistence/Properties/AssemblyInfo.cs (revision 3932)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die mit einer Assembly verknüpft sind.
+[assembly: AssemblyTitle("Persistence")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Persistence")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
+// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
+// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("4acf163e-c885-43e3-8b90-461afa63f221")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/App.config
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/App.config (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/App.config (revision 3932)
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/IService1.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/IService1.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/IService1.cs (revision 3932)
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.Text;
+
+namespace Service
+{
+ // HINWEIS: Wenn Sie hier den Schnittstellennamen "IService1" ändern, müssen Sie ebenfalls den Verweis auf "IService1" in "App.config" aktualisieren.
+ [ServiceContract]
+ public interface IService1
+ {
+ [OperationContract]
+ string GetData(int value);
+
+ [OperationContract]
+ CompositeType GetDataUsingDataContract(CompositeType composite);
+
+ // AUFGABE: Hier Dienstvorgänge hinzufügen
+ }
+
+ // Verwenden Sie einen Datenvertrag, wie im folgenden Beispiel dargestellt, um Dienstvorgängen zusammengesetzte Typen hinzuzufügen.
+ [DataContract]
+ public class CompositeType
+ {
+ bool boolValue = true;
+ string stringValue = "Hello ";
+
+ [DataMember]
+ public bool BoolValue
+ {
+ get { return boolValue; }
+ set { boolValue = value; }
+ }
+
+ [DataMember]
+ public string StringValue
+ {
+ get { return stringValue; }
+ set { stringValue = value; }
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Properties/AssemblyInfo.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Properties/AssemblyInfo.cs (revision 3932)
@@ -0,0 +1,38 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("Service")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Service")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
+// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
+// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("f51edde7-01ee-49d0-a876-79646e9c476a")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("UnitTests")]
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabMembershipProvider.cs (revision 3932)
@@ -0,0 +1,153 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web.Security;
+
+namespace Service.Provider
+{
+ class HeuristicLabMembershipProvider : MembershipProvider
+ {
+ public override string ApplicationName
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override bool ChangePassword(string username, string oldPassword, string newPassword)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool DeleteUser(string username, bool deleteAllRelatedData)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool EnablePasswordReset
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool EnablePasswordRetrieval
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override int GetNumberOfUsersOnline()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string GetPassword(string username, string answer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override MembershipUser GetUser(string username, bool userIsOnline)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string GetUserNameByEmail(string email)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override int MaxInvalidPasswordAttempts
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override int MinRequiredNonAlphanumericCharacters
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override int MinRequiredPasswordLength
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override int PasswordAttemptWindow
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override MembershipPasswordFormat PasswordFormat
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override string PasswordStrengthRegularExpression
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool RequiresQuestionAndAnswer
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override bool RequiresUniqueEmail
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public override string ResetPassword(string username, string answer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool UnlockUser(string userName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void UpdateUser(MembershipUser user)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool ValidateUser(string username, string password)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Provider/HeuristicLabRoleProvider.cs (revision 3932)
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Web.Security;
+
+namespace Service.Provider
+{
+ class HeuristicLabRoleProvider : RoleProvider
+ {
+ public override void AddUsersToRoles(string[] usernames, string[] roleNames)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string ApplicationName
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override void CreateRole(string roleName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string[] FindUsersInRole(string roleName, string usernameToMatch)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string[] GetAllRoles()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string[] GetRolesForUser(string username)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override string[] GetUsersInRole(string roleName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool IsUserInRole(string username, string roleName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override bool RoleExists(string roleName)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Service.csproj
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Service.csproj (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Service.csproj (revision 3932)
@@ -0,0 +1,76 @@
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}
+ Library
+ Properties
+ Service
+ Service
+ {3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ /client:"WcfTestClient.exe"
+ v3.5
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+ 3.5
+
+
+
+ 3.0
+
+
+ 3.0
+
+
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}
+ Persistence
+
+
+
+
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/Service/Service1.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/Service/Service1.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/Service/Service1.cs (revision 3932)
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.Text;
+
+namespace Service
+{
+ // HINWEIS: Wenn Sie hier den Klassennamen "Service1" ändern, müssen Sie ebenfalls den Verweis auf "Service1" in "App.config" aktualisieren.
+ public class Service1 : IService1
+ {
+ public string GetData(int value)
+ {
+ return string.Format("You entered: {0}", value);
+ }
+
+ public CompositeType GetDataUsingDataContract(CompositeType composite)
+ {
+ if (composite.BoolValue)
+ {
+ composite.StringValue += "Suffix";
+ }
+ return composite;
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/AuthoringTests.txt
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/AuthoringTests.txt (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/AuthoringTests.txt (revision 3932)
@@ -0,0 +1,134 @@
+==========================================================================
+ Visual Studio Team System: Übersicht über das Erstellen und Durchführen von Tests
+==========================================================================
+
+In dieser Übersicht werden die Features zum Erstellen und Durchführen von Tests in
+Visual Studio Team System und Visual Studio Team Edition for Software Testers beschrieben.
+
+Öffnen von Tests
+-------------
+Wenn Sie einen Test öffnen möchten, öffnen Sie ein Testprojekt oder eine
+Testmetadatendatei (eine Datei mit der Erweiterung .vsmdi), die die Definition des Tests enthält. Sie finden Testprojekte und
+Metadatendateien im Projektmappen-Explorer.
+
+Anzeigen von Tests
+-------------
+Um anzuzeigen, welche Tests verfügbar sind, öffnen Sie das Fenster "Testansicht". Oderwenn Sie Team Edition for Software Testers installiert haben, können Sie auch
+das Testlisten-Editorfenster zum Anzeigen der Tests öffnen.
+
+Klicken Sie zum Öffnen des Fensters "Testansicht" auf das Menü "Test", zeigen Sie auf "Windows", und
+klicken Sie dann auf "Testansicht". Klicken Sie zum Öffnen des Fensters "Testlisten-Editor" (sofern Sie
+Team Edition for Software Testers installiert haben) auf "Test", zeigen Sie auf "Windows",
+und klicken Sie dann auf "Testlisten-Editor".
+
+Durchführen von Tests
+-------------
+Sie können Tests im Fenster "Testansicht" und im Fenster "Testlisten-Editor" durchführen.
+Anweisungen zum Öffnen dieser Fenster finden Sie unter "Anzeigen von Tests". Wenn ein oder mehrere im Fenster
+"Testansicht" angezeigte Tests durchgeführt werden sollen, markieren Sie diese Tests zunächst in
+diesem Fenster. Wenn Sie mehrere Tests markieren möchten, klicken Sie bei gedrückter UMSCHALT- oder STRG-TASTE
+auf die Tests. Klicken Sie anschließend auf der Symbolleiste im Fenster "Testansicht" auf die
+Schaltfläche "Tests durchführen".
+
+Wenn Sie Visual Studio Team Edition for Software Testers installiert haben, können Sie auch
+das Fenster "Testlisten-Editor" zum Durchführen von Tests verwenden. Wenn Sie Tests im Testlisten-Editor ausführen möchten,
+aktivieren Sie das Kontrollkästchen neben dem jeweils durchzuführenden Test. Klicken Sie anschließend
+auf der Symbolleiste im Fenster "Testlisten-Editor" auf die Schaltfläche "Tests durchführen".
+
+Anzeigen von Testergebnissen
+--------------------
+Wenn Sie einen oder mehrere Tests durchführen, werden die Ergebnisse der durchgeführten Tests
+im Fenster "Testergebnisse" angezeigt. Jeder einzelne Test wird in einer separaten
+Zeile angezeigt, sodass sein Status erkennbar ist. In der oberen Hälfte des Fensters
+befindet sich eine eingebettete Statusleiste. Die Leiste enthält
+eine Zusammenfassung von Details zum gesamten Testlauf.
+
+Zum Anzeigen von ausführlicheren Informationen zu einem bestimmten Testergebnis doppelklicken Sie im
+Fenster "Testergebnisse" auf das Ergebnis. Hierdurch wird ein Fenster geöffnet, in dem weitere Informationen
+zu dem bestimmten Testergebnis angezeigt werden, z. B. alle im Test zurückgegebenen
+Fehlermeldungen.
+
+Ändern der Art der Testdurchführung
+-----------------------------------
+Beim Durchführen eines oder mehrerer Tests wird eine Reihe von Einstellungen verwendet,
+die bestimmen, auf welche Weise diese Tests durchgeführt werden. Diese Einstellungen sind in einer Konfigurationsdatei für Testläufe
+enthalten.
+
+Im Folgenden ist eine Liste mit einigen der Änderungen aufgeführt, die an einer Testlauf-Konfigurationsdatei vorgenommen
+werden können:
+
+ – Ändern des Benennungsschemas für jeden Testlauf.
+ – Ändern des Testcontrollers, auf dem die Tests durchgeführt werden, sodass Tests
+ remote durchgeführt werden können.
+ – Erfassen von Codeabdeckungsdaten für den zu testenden Code, sodass ersichtlich wird,
+ welche Codezeilen durch die Tests abgedeckt werden.
+ - Aktivieren und Deaktivieren der Testbereitstellung.
+ – Angeben zusätzlicher, vor dem Ausführen der Tests bereitzustellender Dateien.
+ – Auswählen eines anderen Hosts (ASP.NET) zum Durchführen von ASP.NET-Komponententests.
+ – Auswählen eines anderen Hosts, des Testhosts für intelligente Geräte, zum Durchführen von Komponententests für intelligente Geräte.
+ – Festlegen verschiedener Eigenschaften für die Test-Agents, die die Tests durchführen.
+ – Ausführen benutzerdefinierter Skripts zum Anfang und Ende jedes Testlaufs, sodass die
+ Testumgebung für jeden Testlauf genau nach Wunsch eingerichtet werden kann.
+ – Festlegen von Zeitlimits für Tests und Testläufe.
+ – Festlegen der verwendbaren Browser und der Anzahl der Wiederholungen von Webtests im
+ Testlauf.
+
+Standardmäßig wird eine Konfigurationsdatei für Testläufe immer dann erstellt, wenn Sie ein
+neues Testprojekt erstellen. Änderungen an dieser Datei können Sie vornehmen, indem Sie im
+Projektmappen-Explorer auf die Datei doppelklicken und dann die Einstellungen ändern. (Konfigurationsdateien für Testläufe
+besitzen die Erweiterung ".testrunconfig".)
+
+Eine Projektmappe kann mehrere Konfigurationsdateien für Testläufe enthalten. Nur in einer dieser
+Dateien (der "aktiven" Konfigurationsdatei für Testläufe) werden
+die Einstellungen bestimmt, die gegenwärtig für Testläufe verwendet werden. Sie wählen
+die aktive Konfigurationsdatei für Testläufe aus, indem Sie im Menü "Test" auf
+"Aktive Testlaufkonfiguration auswählen" klicken.
+
+-------------------------------------------------------------------------------
+
+Testtypen
+----------
+Bei Verwendung von Visual Studio Team Edition for Software Testers können Sie verschiedene
+Testtypen erstellen:
+
+Komponententest: Erstellen Sie mithilfe eines Komponententests einen programmgesteuerten Test in C++, Visual C# oder
+Visual Basic, der Quellcode ausführt. Ein Komponententest ruft die Methoden einer
+Klasse auf, übergibt passende Parameter und überprüft, ob der zurückgegebene Wert
+Ihren Erwartungen entspricht.
+Es stehen drei spezielle Varianten von Komponententests zur Verfügung:
+ – Datengesteuerte Komponententests werden erstellt, wenn Sie einen Komponententest so konfigurieren, dass er
+ für jede Zeile einer Datenquelle erneut aufgerufen wird. Die Daten jeder Zeile
+ werden für den Komponententest als Eingabedaten verwendet.
+ – ASP.NET-Komponententests sind Komponententests, bei denen Code in einer ASP.NET-Webanwendung
+ ausgeführt wird.
+ - Komponententests für intelligente Geräte sind Komponententests, die für ein intelligentes Gerät
+ oder einen Emulator bereitgestellt werden und dann vom Testhost für intelligente Geräte ausgeführt werden.
+
+Webtest: Webtests bestehen aus einer geordneten Folge von HTTP-Anforderungen, die
+in einer Browsersitzung von Microsoft Internet Explorer aufgezeichnet werden. Sie können festlegen, dass
+der Test über bestimmte Details zu den angeforderten Seiten oder Websites informiert, beispielsweise
+ob eine bestimmte Seite eine angegebene Zeichenfolge enthält.
+
+Auslastungstest: Ein Auslastungstest wird zum Kapseln von nicht manuellen Tests wie
+Komponententests, Webtests und generischen Tests sowie zum anschließenden Durchführen der Tests durch
+virtuelle Benutzer verwendet. Beim Durchführen dieser Tests unter Last werden Testergebnisse,
+einschließlich Leistungsindikatoren und weiterer Indikatoren, in Tabellen und Diagrammen generiert.
+
+Generischer Test: Ein generischer Test ist ein vorhandenes Programm, das umschlossen ist, damit es
+in Visual Studio als Test funktioniert. Im Folgenden sind Beispiele für Tests oder Programme aufgeführt, die
+in generische Tests umgewandelt werden können:
+ – Ein vorhandener Test, der mithilfe von Prozessbeendigungscodes darüber informiert, ob der
+ Test erfolgreich war. 0 (null) bedeutet, dass der Test erfolgreich war. Jeder andere Wert bedeutet,
+ dass ein Fehler aufgetreten ist.
+ – Ein allgemeines Programm, durch das während eines Testszenarios bestimmte Funktionen verfügbar sind.
+ – Ein Test oder Programm, bei dem eine spezielle XML-Datei (eine "Ergebniszusammenfassungsdatei") verwendet wird,
+ um detaillierte Ergebnisse zu übermitteln.
+
+Manueller Test: Dieser Testtyp wird verwendet, wenn die Testaufgaben
+von einem Testingenieur durchgeführt werden sollen und nicht von einem automatischen Skript.
+
+Testreihe: Verwenden Sie eine Testreihe zum Durchführen mehrerer Tests in einer
+von Ihnen angegebenen Reihenfolge.
+
+-------------------------------------------------------------------------------
+
Index: /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabMembershipProviderTest.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabMembershipProviderTest.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabMembershipProviderTest.cs (revision 3932)
@@ -0,0 +1,482 @@
+using Service.Provider;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System.Web.Security;
+
+namespace UnitTests
+{
+
+
+ ///
+ ///Dies ist eine Testklasse für "HeuristicLabMembershipProviderTest" und soll
+ ///alle HeuristicLabMembershipProviderTest Komponententests enthalten.
+ ///
+ [TestClass()]
+ public class HeuristicLabMembershipProviderTest
+ {
+
+
+ private TestContext testContextInstance;
+
+ ///
+ ///Ruft den Testkontext auf, der Informationen
+ ///über und Funktionalität für den aktuellen Testlauf bietet, oder legt diesen fest.
+ ///
+ public TestContext TestContext
+ {
+ get
+ {
+ return testContextInstance;
+ }
+ set
+ {
+ testContextInstance = value;
+ }
+ }
+
+ #region Zusätzliche Testattribute
+ //
+ //Sie können beim Verfassen Ihrer Tests die folgenden zusätzlichen Attribute verwenden:
+ //
+ //Mit ClassInitialize führen Sie Code aus, bevor Sie den ersten Test in der Klasse ausführen.
+ //[ClassInitialize()]
+ //public static void MyClassInitialize(TestContext testContext)
+ //{
+ //}
+ //
+ //Mit ClassCleanup führen Sie Code aus, nachdem alle Tests in einer Klasse ausgeführt wurden.
+ //[ClassCleanup()]
+ //public static void MyClassCleanup()
+ //{
+ //}
+ //
+ //Mit TestInitialize können Sie vor jedem einzelnen Test Code ausführen.
+ //[TestInitialize()]
+ //public void MyTestInitialize()
+ //{
+ //}
+ //
+ //Mit TestCleanup können Sie nach jedem einzelnen Test Code ausführen.
+ //[TestCleanup()]
+ //public void MyTestCleanup()
+ //{
+ //}
+ //
+ #endregion
+
+
+ ///
+ ///Ein Test für "RequiresUniqueEmail"
+ ///
+ [TestMethod()]
+ public void RequiresUniqueEmailTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.RequiresUniqueEmail;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "RequiresQuestionAndAnswer"
+ ///
+ [TestMethod()]
+ public void RequiresQuestionAndAnswerTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.RequiresQuestionAndAnswer;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "PasswordStrengthRegularExpression"
+ ///
+ [TestMethod()]
+ public void PasswordStrengthRegularExpressionTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string actual;
+ actual = target.PasswordStrengthRegularExpression;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "PasswordFormat"
+ ///
+ [TestMethod()]
+ public void PasswordFormatTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ MembershipPasswordFormat actual;
+ actual = target.PasswordFormat;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "PasswordAttemptWindow"
+ ///
+ [TestMethod()]
+ public void PasswordAttemptWindowTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int actual;
+ actual = target.PasswordAttemptWindow;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "MinRequiredPasswordLength"
+ ///
+ [TestMethod()]
+ public void MinRequiredPasswordLengthTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int actual;
+ actual = target.MinRequiredPasswordLength;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "MinRequiredNonAlphanumericCharacters"
+ ///
+ [TestMethod()]
+ public void MinRequiredNonAlphanumericCharactersTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int actual;
+ actual = target.MinRequiredNonAlphanumericCharacters;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "MaxInvalidPasswordAttempts"
+ ///
+ [TestMethod()]
+ public void MaxInvalidPasswordAttemptsTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int actual;
+ actual = target.MaxInvalidPasswordAttempts;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "EnablePasswordRetrieval"
+ ///
+ [TestMethod()]
+ public void EnablePasswordRetrievalTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.EnablePasswordRetrieval;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "EnablePasswordReset"
+ ///
+ [TestMethod()]
+ public void EnablePasswordResetTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.EnablePasswordReset;
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "ApplicationName"
+ ///
+ [TestMethod()]
+ public void ApplicationNameTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string expected = string.Empty; // TODO: Passenden Wert initialisieren
+ string actual;
+ target.ApplicationName = expected;
+ actual = target.ApplicationName;
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "ValidateUser"
+ ///
+ [TestMethod()]
+ public void ValidateUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string password = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.ValidateUser(username, password);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "UpdateUser"
+ ///
+ [TestMethod()]
+ public void UpdateUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ MembershipUser user = null; // TODO: Passenden Wert initialisieren
+ target.UpdateUser(user);
+ Assert.Inconclusive("Eine Methode, die keinen Wert zurückgibt, kann nicht überprüft werden.");
+ }
+
+ ///
+ ///Ein Test für "UnlockUser"
+ ///
+ [TestMethod()]
+ public void UnlockUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string userName = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.UnlockUser(userName);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "ResetPassword"
+ ///
+ [TestMethod()]
+ public void ResetPasswordTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string answer = string.Empty; // TODO: Passenden Wert initialisieren
+ string expected = string.Empty; // TODO: Passenden Wert initialisieren
+ string actual;
+ actual = target.ResetPassword(username, answer);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetUserNameByEmail"
+ ///
+ [TestMethod()]
+ public void GetUserNameByEmailTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string email = string.Empty; // TODO: Passenden Wert initialisieren
+ string expected = string.Empty; // TODO: Passenden Wert initialisieren
+ string actual;
+ actual = target.GetUserNameByEmail(email);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetUser"
+ ///
+ [TestMethod()]
+ public void GetUserTest1()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ object providerUserKey = null; // TODO: Passenden Wert initialisieren
+ bool userIsOnline = false; // TODO: Passenden Wert initialisieren
+ MembershipUser expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUser actual;
+ actual = target.GetUser(providerUserKey, userIsOnline);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetUser"
+ ///
+ [TestMethod()]
+ public void GetUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ bool userIsOnline = false; // TODO: Passenden Wert initialisieren
+ MembershipUser expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUser actual;
+ actual = target.GetUser(username, userIsOnline);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetPassword"
+ ///
+ [TestMethod()]
+ public void GetPasswordTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string answer = string.Empty; // TODO: Passenden Wert initialisieren
+ string expected = string.Empty; // TODO: Passenden Wert initialisieren
+ string actual;
+ actual = target.GetPassword(username, answer);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetNumberOfUsersOnline"
+ ///
+ [TestMethod()]
+ public void GetNumberOfUsersOnlineTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int expected = 0; // TODO: Passenden Wert initialisieren
+ int actual;
+ actual = target.GetNumberOfUsersOnline();
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetAllUsers"
+ ///
+ [TestMethod()]
+ public void GetAllUsersTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ int pageIndex = 0; // TODO: Passenden Wert initialisieren
+ int pageSize = 0; // TODO: Passenden Wert initialisieren
+ int totalRecords = 0; // TODO: Passenden Wert initialisieren
+ int totalRecordsExpected = 0; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection actual;
+ actual = target.GetAllUsers(pageIndex, pageSize, out totalRecords);
+ Assert.AreEqual(totalRecordsExpected, totalRecords);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "FindUsersByName"
+ ///
+ [TestMethod()]
+ public void FindUsersByNameTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string usernameToMatch = string.Empty; // TODO: Passenden Wert initialisieren
+ int pageIndex = 0; // TODO: Passenden Wert initialisieren
+ int pageSize = 0; // TODO: Passenden Wert initialisieren
+ int totalRecords = 0; // TODO: Passenden Wert initialisieren
+ int totalRecordsExpected = 0; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection actual;
+ actual = target.FindUsersByName(usernameToMatch, pageIndex, pageSize, out totalRecords);
+ Assert.AreEqual(totalRecordsExpected, totalRecords);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "FindUsersByEmail"
+ ///
+ [TestMethod()]
+ public void FindUsersByEmailTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string emailToMatch = string.Empty; // TODO: Passenden Wert initialisieren
+ int pageIndex = 0; // TODO: Passenden Wert initialisieren
+ int pageSize = 0; // TODO: Passenden Wert initialisieren
+ int totalRecords = 0; // TODO: Passenden Wert initialisieren
+ int totalRecordsExpected = 0; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUserCollection actual;
+ actual = target.FindUsersByEmail(emailToMatch, pageIndex, pageSize, out totalRecords);
+ Assert.AreEqual(totalRecordsExpected, totalRecords);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "DeleteUser"
+ ///
+ [TestMethod()]
+ public void DeleteUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ bool deleteAllRelatedData = false; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.DeleteUser(username, deleteAllRelatedData);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "CreateUser"
+ ///
+ [TestMethod()]
+ public void CreateUserTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string password = string.Empty; // TODO: Passenden Wert initialisieren
+ string email = string.Empty; // TODO: Passenden Wert initialisieren
+ string passwordQuestion = string.Empty; // TODO: Passenden Wert initialisieren
+ string passwordAnswer = string.Empty; // TODO: Passenden Wert initialisieren
+ bool isApproved = false; // TODO: Passenden Wert initialisieren
+ object providerUserKey = null; // TODO: Passenden Wert initialisieren
+ MembershipCreateStatus status = new MembershipCreateStatus(); // TODO: Passenden Wert initialisieren
+ MembershipCreateStatus statusExpected = new MembershipCreateStatus(); // TODO: Passenden Wert initialisieren
+ MembershipUser expected = null; // TODO: Passenden Wert initialisieren
+ MembershipUser actual;
+ actual = target.CreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
+ Assert.AreEqual(statusExpected, status);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "ChangePasswordQuestionAndAnswer"
+ ///
+ [TestMethod()]
+ public void ChangePasswordQuestionAndAnswerTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string password = string.Empty; // TODO: Passenden Wert initialisieren
+ string newPasswordQuestion = string.Empty; // TODO: Passenden Wert initialisieren
+ string newPasswordAnswer = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.ChangePasswordQuestionAndAnswer(username, password, newPasswordQuestion, newPasswordAnswer);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "ChangePassword"
+ ///
+ [TestMethod()]
+ public void ChangePasswordTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string oldPassword = string.Empty; // TODO: Passenden Wert initialisieren
+ string newPassword = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.ChangePassword(username, oldPassword, newPassword);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "HeuristicLabMembershipProvider-Konstruktor"
+ ///
+ [TestMethod()]
+ public void HeuristicLabMembershipProviderConstructorTest()
+ {
+ HeuristicLabMembershipProvider target = new HeuristicLabMembershipProvider();
+ Assert.Inconclusive("TODO: Code zum Überprüfen des Ziels implementieren");
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabRoleProviderTest.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabRoleProviderTest.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/HeuristicLabRoleProviderTest.cs (revision 3932)
@@ -0,0 +1,235 @@
+using Service.Provider;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace UnitTests
+{
+
+
+ ///
+ ///Dies ist eine Testklasse für "HeuristicLabRoleProviderTest" und soll
+ ///alle HeuristicLabRoleProviderTest Komponententests enthalten.
+ ///
+ [TestClass()]
+ public class HeuristicLabRoleProviderTest
+ {
+
+
+ private TestContext testContextInstance;
+
+ ///
+ ///Ruft den Testkontext auf, der Informationen
+ ///über und Funktionalität für den aktuellen Testlauf bietet, oder legt diesen fest.
+ ///
+ public TestContext TestContext
+ {
+ get
+ {
+ return testContextInstance;
+ }
+ set
+ {
+ testContextInstance = value;
+ }
+ }
+
+ #region Zusätzliche Testattribute
+ //
+ //Sie können beim Verfassen Ihrer Tests die folgenden zusätzlichen Attribute verwenden:
+ //
+ //Mit ClassInitialize führen Sie Code aus, bevor Sie den ersten Test in der Klasse ausführen.
+ //[ClassInitialize()]
+ //public static void MyClassInitialize(TestContext testContext)
+ //{
+ //}
+ //
+ //Mit ClassCleanup führen Sie Code aus, nachdem alle Tests in einer Klasse ausgeführt wurden.
+ //[ClassCleanup()]
+ //public static void MyClassCleanup()
+ //{
+ //}
+ //
+ //Mit TestInitialize können Sie vor jedem einzelnen Test Code ausführen.
+ //[TestInitialize()]
+ //public void MyTestInitialize()
+ //{
+ //}
+ //
+ //Mit TestCleanup können Sie nach jedem einzelnen Test Code ausführen.
+ //[TestCleanup()]
+ //public void MyTestCleanup()
+ //{
+ //}
+ //
+ #endregion
+
+
+ ///
+ ///Ein Test für "ApplicationName"
+ ///
+ [TestMethod()]
+ public void ApplicationNameTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string expected = string.Empty; // TODO: Passenden Wert initialisieren
+ string actual;
+ target.ApplicationName = expected;
+ actual = target.ApplicationName;
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "RoleExists"
+ ///
+ [TestMethod()]
+ public void RoleExistsTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.RoleExists(roleName);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "RemoveUsersFromRoles"
+ ///
+ [TestMethod()]
+ public void RemoveUsersFromRolesTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string[] usernames = null; // TODO: Passenden Wert initialisieren
+ string[] roleNames = null; // TODO: Passenden Wert initialisieren
+ target.RemoveUsersFromRoles(usernames, roleNames);
+ Assert.Inconclusive("Eine Methode, die keinen Wert zurückgibt, kann nicht überprüft werden.");
+ }
+
+ ///
+ ///Ein Test für "IsUserInRole"
+ ///
+ [TestMethod()]
+ public void IsUserInRoleTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.IsUserInRole(username, roleName);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetUsersInRole"
+ ///
+ [TestMethod()]
+ public void GetUsersInRoleTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ string[] expected = null; // TODO: Passenden Wert initialisieren
+ string[] actual;
+ actual = target.GetUsersInRole(roleName);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetRolesForUser"
+ ///
+ [TestMethod()]
+ public void GetRolesForUserTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string username = string.Empty; // TODO: Passenden Wert initialisieren
+ string[] expected = null; // TODO: Passenden Wert initialisieren
+ string[] actual;
+ actual = target.GetRolesForUser(username);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "GetAllRoles"
+ ///
+ [TestMethod()]
+ public void GetAllRolesTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string[] expected = null; // TODO: Passenden Wert initialisieren
+ string[] actual;
+ actual = target.GetAllRoles();
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "FindUsersInRole"
+ ///
+ [TestMethod()]
+ public void FindUsersInRoleTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ string usernameToMatch = string.Empty; // TODO: Passenden Wert initialisieren
+ string[] expected = null; // TODO: Passenden Wert initialisieren
+ string[] actual;
+ actual = target.FindUsersInRole(roleName, usernameToMatch);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "DeleteRole"
+ ///
+ [TestMethod()]
+ public void DeleteRoleTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ bool throwOnPopulatedRole = false; // TODO: Passenden Wert initialisieren
+ bool expected = false; // TODO: Passenden Wert initialisieren
+ bool actual;
+ actual = target.DeleteRole(roleName, throwOnPopulatedRole);
+ Assert.AreEqual(expected, actual);
+ Assert.Inconclusive("Überprüfen Sie die Richtigkeit dieser Testmethode.");
+ }
+
+ ///
+ ///Ein Test für "CreateRole"
+ ///
+ [TestMethod()]
+ public void CreateRoleTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string roleName = string.Empty; // TODO: Passenden Wert initialisieren
+ target.CreateRole(roleName);
+ Assert.Inconclusive("Eine Methode, die keinen Wert zurückgibt, kann nicht überprüft werden.");
+ }
+
+ ///
+ ///Ein Test für "AddUsersToRoles"
+ ///
+ [TestMethod()]
+ public void AddUsersToRolesTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider(); // TODO: Passenden Wert initialisieren
+ string[] usernames = null; // TODO: Passenden Wert initialisieren
+ string[] roleNames = null; // TODO: Passenden Wert initialisieren
+ target.AddUsersToRoles(usernames, roleNames);
+ Assert.Inconclusive("Eine Methode, die keinen Wert zurückgibt, kann nicht überprüft werden.");
+ }
+
+ ///
+ ///Ein Test für "HeuristicLabRoleProvider-Konstruktor"
+ ///
+ [TestMethod()]
+ public void HeuristicLabRoleProviderConstructorTest()
+ {
+ HeuristicLabRoleProvider target = new HeuristicLabRoleProvider();
+ Assert.Inconclusive("TODO: Code zum Überprüfen des Ziels implementieren");
+ }
+ }
+}
Index: /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/Properties/AssemblyInfo.cs (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/Properties/AssemblyInfo.cs (revision 3932)
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die mit einer Assembly verknüpft sind.
+[assembly: AssemblyTitle("UnitTests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("UnitTests")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
+// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
+// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("4cf38f9c-dba2-432d-9842-6d737860ccf1")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder die standardmäßigen Revisions- und Buildnummern
+// übernehmen, indem Sie "*" eingeben:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/UnitTests.csproj
===================================================================
--- /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/UnitTests.csproj (revision 3932)
+++ /branches/HeuristicLab.Services.Authentication Prototype/UnitTests/UnitTests.csproj (revision 3932)
@@ -0,0 +1,79 @@
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {90873656-FC76-4759-A451-F0FCDA35CAA4}
+ Library
+ Properties
+ UnitTests
+ UnitTests
+ v3.5
+ 512
+ {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+ 3.5
+
+
+
+ 3.0
+
+
+ 3.0
+
+
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+ {0B9535EE-DB1E-4174-B6C3-692DE1D8D841}
+ Persistence
+
+
+ {E10132CA-5E9E-41F4-A855-45E5E759790A}
+ Service
+
+
+
+
+