private void AwfulAuthenticateByBrowser_LoginSuccessful(object sender, Event.ProfileChangedEventArgs e)
        {
            // update AwfulWebRequest Cookie jar
            AwfulWebRequest.SetCookieJar(e.Cookies);

            // save profile to database, along with authentication tokens
            using (var dao = new AwfulProfileDAO())
            {
                var updatedProfile = dao.SaveAuthenticationCookiesToProfile(e.Value, e.Cookies);
                if (updatedProfile == null)
                {
                    updatedProfile = dao.CreateProfile(e.Value.Username, e.Value.Password, e.Cookies);
                    if (updatedProfile != null) { this._settings.CurrentProfileID = updatedProfile.ID; }
                    else { this._settings.CurrentProfileID = NONE; }
                }
            }
        }
        public void Starting()
        {
            using (var db = AwfulDataContext.CreateDataContext(TEST_FILENAME))
            {
                if (db.DatabaseExists()) { db.DeleteDatabase(); }
                db.CreateDatabase();
            }

            using (var db = new AwfulDataContext())
            {
                if (!db.DatabaseExists())
                {
                    db.CreateDatabase();
                    var dao = new AwfulProfileDAO(db);
                    dao.CreateProfile(StaticParameters.TEST_USERNAME, StaticParameters.TEST_PASSWORD, new List<Cookie>());
                }
            }
        }
        public void TestCreateProfile()
        {
            using (var dao = new AwfulProfileDAO(AwfulTestService.TestContext))
            {
                List<Cookie> cookies = new List<Cookie>();
                cookies.Add(new Cookie("cookie1", "value1"));
                cookies.Add(new Cookie("cookie2", "value2"));
                var profile = dao.CreateProfile("username", "password", cookies);

                // ensure profile was created
                Assert.IsNotNull(profile);
                Assert.AreEqual("username", profile.Username);
                Assert.AreEqual("password", profile.Password);
                Assert.IsTrue(profile.Tokens.Count == 2);

                // ensure profile was persisted
                var profileInDatabase = AwfulTestService.TestContext.Profiles
                    .Where(p => p.Username == "username").SingleOrDefault();

                Assert.IsNotNull(profileInDatabase);
                Assert.IsTrue(profileInDatabase.Tokens.Count == 2);
            }
        }