public void GetUsersSuccessfully() { var users = new PlexFriends { User = new[] { new UserFriends { Title = "abc2" }, } }; PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(users); var browser = new Browser(Bootstrapper); var result = browser.Get("/admin/getusers", with => { with.HttpRequest(); with.Header("Accept", "application/json"); with.FormValue("username", "Username1"); with.FormValue("password", "Password1"); }); Assert.That(HttpStatusCode.OK, Is.EqualTo(result.StatusCode)); var body = JsonConvert.DeserializeObject <JObject>(result.Body.AsString()); var user = body["users"]; Assert.That(body, Is.Not.Null); Assert.That(user.ToString().Contains("abc"), Is.True); PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once); }
public void GetUsersReturnsNoUsers() { var users = new PlexFriends(); PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(users); var browser = new Browser(Bootstrapper); var result = browser.Get("/admin/getusers", with => { with.HttpRequest(); with.Header("Accept", "application/json"); with.FormValue("username", "Username1"); with.FormValue("password", "Password1"); }); Assert.That(HttpStatusCode.OK, Is.EqualTo(result.StatusCode)); var body = JsonConvert.DeserializeObject <string>(result.Body.AsString()); Assert.That(body, Is.Not.Null); Assert.That(string.IsNullOrWhiteSpace(body), Is.True); PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once); AuthMock.Verify(x => x.GetSettings(), Times.Once); }
public void LoginWithOwnerUsernameAndPasswordSuccessfully() { var expectedSettings = new AuthenticationSettings { UserAuthentication = true, UsePassword = true }; var plexFriends = new PlexFriends { User = new[] { new UserFriends() } }; var plexAuth = new PlexAuthentication { user = new User { authentication_token = "abc", username = "******" } }; var account = new PlexAccount { Username = "******" }; AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings); PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(plexFriends); PlexMock.Setup(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>())).Returns(plexAuth); PlexMock.Setup(x => x.GetAccount(It.IsAny <string>())).Returns(account); Bootstrapper.WithSession(new Dictionary <string, object>()); var browser = new Browser(Bootstrapper); var result = browser.Post("/userlogin", with => { with.HttpRequest(); with.Header("Accept", "application/json"); with.FormValue("Username", "jamie"); with.FormValue("Password", "abc"); }); Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode)); Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.searchindex.com/"))); // Redirect header AuthMock.Verify(x => x.GetSettingsAsync(), Times.Once); PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Once); PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Never); }
public void LoginWithUsernameUnSuccessfully() { var expectedSettings = new AuthenticationSettings { UserAuthentication = true }; var plexFriends = new PlexFriends { User = new[] { new UserFriends { Username = "******", }, } }; AuthMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(expectedSettings); PlexMock.Setup(x => x.GetUsers(It.IsAny <string>())).Returns(plexFriends); PlexMock.Setup(x => x.GetAccount(It.IsAny <string>())).Returns(new PlexAccount()); Bootstrapper.WithSession(new Dictionary <string, object>()); var browser = new Browser(Bootstrapper); var result = browser.Post("/userlogin", with => { with.HttpRequest(); with.Header("Accept", "application/json"); with.FormValue("Username", "abc"); }); Assert.That(HttpStatusCode.SeeOther, Is.EqualTo(result.StatusCode)); Assert.That(result.Context.Request.Session[SessionKeys.UsernameKey], Is.Null); Assert.That(result.Headers.Contains(new KeyValuePair <string, string>("Location", "http://www.userloginindex.com/"))); // Redirect header AuthMock.Verify(x => x.GetSettingsAsync(), Times.Once); PlexMock.Verify(x => x.SignIn(It.IsAny <string>(), It.IsAny <string>()), Times.Never); PlexMock.Verify(x => x.GetUsers(It.IsAny <string>()), Times.Once); }