Пример #1
0
        public void DeleteUser_WinnnerInAuction_null()
        {
            var          userSession = Site.Login(UserName, Pw);
            const string sellerName  = "very lucky seller";
            const string sellerPw    = "seller's password";

            Site.CreateUser(sellerName, sellerPw);
            var seller        = Site.GetUsers().SingleOrDefault(u => u.Username == sellerName);
            var sellerSession = Site.Login(sellerName, sellerPw);
            var randomGen     = new Random();
            var startingPrice = randomGen.NextDouble() * 100 + 1;
            var auction       = sellerSession.CreateAuction($"The th auction for {sellerName}",
                                                            AlarmClock.Object.Now.AddDays(1), startingPrice);

            auction.BidOnAuction(userSession, startingPrice * 2);
            var user = Site.GetUsers().SingleOrDefault(u => u.Username == UserName);
            var now  = AlarmClock.Object.Now;

            AlarmClock.Setup(ac => ac.Now).Returns(now.AddHours(25));
            Site = siteFactory.LoadSite(connectionString, Site.Name, AlarmClock.Object); //needed to refresh time
            user.Delete();
            var auction1 = Site.GetAuctions(false).SingleOrDefault(x => x.Id == auction.Id);
            var usr      = auction1.CurrentWinner();

            Assert.That(usr, Is.Null);
        }
Пример #2
0
        public void WonAuctions_UserWithWonAuctions_NonEmpty([Random(1, 10, 1)] int howManyAuctions)
        {
            var          userSession = Site.Login(UserName, Pw);
            const string sellerName  = "very lucky seller";
            const string sellerPw    = "seller's password";

            Site.CreateUser(sellerName, sellerPw);
            var seller        = Site.GetUsers().SingleOrDefault(u => u.Username == sellerName);
            var sellerSession = Site.Login(sellerName, sellerPw);
            var randomGen     = new Random();
            var auctions      = new List <IAuction>();

            for (int i = 0; i < howManyAuctions; i++)
            {
                var startingPrice = randomGen.NextDouble() * 100 + 1;
                var auction       = sellerSession.CreateAuction($"The {i}th auction for {sellerName}",
                                                                AlarmClock.Object.Now.AddDays(randomGen.Next(3650)), startingPrice);
                auctions.Add(auction);
                auction.BidOnAuction(userSession, startingPrice * 2);
            }

            SetNowToFutureTime(3650 * 24 * 60 * 60 + 1, AlarmClock);
            var wonAuctions = User.WonAuctions();

            Assert.That(auctions, Is.EquivalentTo(wonAuctions));
        }
Пример #3
0
 public void Initialize()
 {
     Site = CreateAndLoadSite(-5, "site for user tests", 360, 7, out AlarmClock);
     Site.CreateUser(UserName, Pw);
     User    = Site.GetUsers().SingleOrDefault(u => u.Username == UserName);
     Session = Site.Login(UserName, Pw);
     Assert.That(User, Is.Not.Null, "Set up should be successful");
 }
Пример #4
0
        public void BidOnAuctions_EndsOn_Throws()
        {
            var now = AlarmClock.Object.Now;

            AlarmClock.Setup(ac => ac.Now).Returns(now.AddDays(8));
            Bidder1Session = Site.Login("bidder1", "bidder1");
            Assert.That(() => TheAuction.BidOnAuction(Bidder1Session, 8), Throws.TypeOf <InvalidOperationException>());
        }
Пример #5
0
#pragma warning disable CS0246 // Il nome di tipo o di spazio dei nomi 'IUser' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
#pragma warning disable CS0246 // Il nome di tipo o di spazio dei nomi 'ISession' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
#pragma warning disable CS0246 // Il nome di tipo o di spazio dei nomi 'ISite' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
        protected IUser CreateAndLogUser(string username, out ISession session, ISite site)
        {
#pragma warning restore CS0246 // Il nome di tipo o di spazio dei nomi 'ISite' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
#pragma warning restore CS0246 // Il nome di tipo o di spazio dei nomi 'ISession' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
#pragma warning restore CS0246 // Il nome di tipo o di spazio dei nomi 'IUser' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly.
            site.CreateUser(username, username);
            session = site.Login(username, username);
            return(site.GetUsers().FirstOrDefault(u => u.Username == username));
        }
Пример #6
0
        private IEnumerable <IAuction> AddAuctions(ISite site, DateTime EndsOn1, int howMany1)
        {
            Debug.Assert(howMany1 >= 0);
            var username = "******" + DateTime.Now.Ticks;

            site.CreateUser(username, "pippo.123");
            var sellerSession = site.Login(username, "pippo.123");
            var result        = new List <IAuction>();

            for (var i = 0; i < howMany1; i++)
            {
                result.Add(sellerSession.CreateAuction($"Auction {i} of {howMany1} ending on {EndsOn1}",
                                                       EndsOn1, 7.7 * i + 11));
            }
            return(result);
        }
Пример #7
0
 protected IUser CreateAndLogUser(string username, out ISession session, ISite site)
 {
     site.CreateUser(username, username);
     session = site.Login(username, username);
     return(site.GetUsers().FirstOrDefault(u => u.Username == username));
 }
Пример #8
0
 private ISession CreateAndLogin_User(string Username, string Password)
 {
     Site.CreateUser(Username, Password);
     return(Site.Login(Username, Password));
 }