public void GetAccountPlaceRequestsByAccountIdTest() { // create a brand new user UserInfo user = CreateUserWithVerifiedEmailAddress(); // create a new place that belongs to that user WebPlaceService.TransitPlace t_place = _place.GetTransitInstance(); t_place.AccountId = user.id; t_place.Id = EndPoint.CreateOrUpdatePlace(user.ticket, t_place); // the new user doesn't have any requests WebPlaceService.TransitAccountPlaceRequest[] requests_1 = EndPoint.GetAccountPlaceRequestsByAccountId( user.ticket, user.id, null); Console.WriteLine("Requests: {0}", requests_1.Length); Assert.AreEqual(0, requests_1.Length); // create a request WebPlaceService.TransitAccountPlaceRequest t_instance = GetTransitInstance(); t_instance.PlaceId = t_place.Id; t_instance.Id = Create(GetAdminTicket(), t_instance); // the new user is the owner of the place and now has a request WebPlaceService.TransitAccountPlaceRequest[] requests_2 = EndPoint.GetAccountPlaceRequestsByAccountId( user.ticket, user.id, null); Console.WriteLine("Requests: {0}", requests_2.Length); Assert.AreEqual(1, requests_2.Length); Assert.AreEqual(t_instance.Id, requests_2[0].Id); // delete place EndPoint.DeletePlace(user.ticket, t_place.Id); DeleteUser(user.id); }
public void GetAccountPlaceRequestsByOwnerAccountIdTest() { // create a brand new user UserInfo user_place_owner = CreateUserWithVerifiedEmailAddress(); Console.WriteLine("Place owner: {0}", user_place_owner.id); // create a new place that belongs to that user WebPlaceService.TransitPlace t_place = _place.GetTransitInstance(); t_place.AccountId = user_place_owner.id; t_place.Id = EndPoint.CreateOrUpdatePlace(user_place_owner.ticket, t_place); Console.WriteLine("Place: {0}", t_place.Id); // third user requests ownership WebPlaceService.TransitAccountPlaceRequest t_request_2 = GetTransitInstance(); t_request_2.PlaceId = t_place.Id; t_request_2.AccountId = _user.id; t_request_2.Id = Create(_user.ticket, t_request_2); Console.WriteLine("Request (2): {0}", t_request_2.Id); // the owner user has one request WebPlaceService.TransitAccountPlaceRequest[] requests_1 = EndPoint.GetAccountPlaceRequestsByAccountId( user_place_owner.ticket, user_place_owner.id, null); Console.WriteLine("Requests: {0}", requests_1.Length); Assert.AreEqual(1, requests_1.Length); // create a brand new user UserInfo user_requester = CreateUserWithVerifiedEmailAddress(); Console.WriteLine("Requester: {0}", user_requester.id); // have user_requester request ownership of the place WebPlaceService.TransitAccountPlaceRequest t_request_1 = GetTransitInstance(); t_request_1.PlaceId = t_place.Id; t_request_1.AccountId = user_requester.id; t_request_1.Id = Create(user_requester.ticket, t_request_1); Console.WriteLine("Request: {0}", t_request_1.Id); // the user has no requests WebPlaceService.TransitAccountPlaceRequest[] requests_2 = EndPoint.GetAccountPlaceRequestsByAccountId( user_requester.ticket, user_requester.id, null); Console.WriteLine("Requests: {0}", requests_2.Length); Assert.AreEqual(0, requests_2.Length); // approve the request EndPoint.AcceptAccountPlaceRequest(user_place_owner.ticket, t_request_1.Id, GetNewString()); // the user has one request since he's also the owner of the place WebPlaceService.TransitAccountPlaceRequest[] requests_3 = EndPoint.GetAccountPlaceRequestsByAccountId( user_requester.ticket, user_requester.id, null); Console.WriteLine("Requests: {0}", requests_3.Length); Assert.AreEqual(1, requests_3.Length); // delete everything EndPoint.DeletePlace(GetAdminTicket(), t_place.Id); DeleteUser(user_requester.id); DeleteUser(user_place_owner.id); }
public void AcceptAccountPlaceRequestTest() { // convince ourselves that the user cannot edit the place WebPlaceService.TransitPlace t_place = _place.EndPoint.GetPlaceById(_user.ticket, _place_id); Console.WriteLine("Place: {0}", t_place.Name); try { EndPoint.CreateOrUpdatePlace(_user.ticket, t_place); Assert.IsTrue(false, "Expected an access denied."); } catch (Exception ex) { Console.WriteLine("Expected exception: {0}", ex.Message); Assert.IsTrue(ex.Message.StartsWith("System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> SnCore.Services.ManagedAccount+AccessDeniedException: Access denied")); } // create a request WebPlaceService.TransitAccountPlaceRequest t_instance = GetTransitInstance(); t_instance.Id = Create(_user.ticket, t_instance); // admin accepts the request EndPoint.AcceptAccountPlaceRequest(GetAdminTicket(), t_instance.Id, GetNewString()); // check that requester is owner WebPlaceService.TransitAccountPlace[] places = EndPoint.GetAccountPlaces(GetAdminTicket(), _user.id, null); Console.WriteLine("Places: {0}", places.Length); Assert.IsTrue(places.Length > 0); bool bFound = false; foreach (WebPlaceService.TransitAccountPlace place in places) { if (place.PlaceId == t_instance.PlaceId) { bFound = true; break; } } Assert.IsTrue(bFound); // the requester can now edit the place EndPoint.CreateOrUpdatePlace(_user.ticket, t_place); // the requester can now add an alternate name WebPlaceService.TransitPlaceName t_name = new WebPlaceService.TransitPlaceName(); t_name.Name = GetNewString(); t_name.PlaceId = _place_id; t_name.Id = EndPoint.CreateOrUpdatePlaceName(_user.ticket, t_name); EndPoint.DeletePlaceName(_user.ticket, t_name.Id); // the requester can now delete a picture WebPlaceService.TransitPlacePicture t_pic = new WebPlaceService.TransitPlacePicture(); t_pic.AccountId = GetAdminAccount().Id; t_pic.Bitmap = GetNewBitmap(); t_pic.Name = GetNewString(); t_pic.PlaceId = _place_id; t_pic.Id = EndPoint.CreateOrUpdatePlacePicture(GetAdminTicket(), t_pic); EndPoint.DeletePlacePicture(_user.ticket, t_pic.Id); }