コード例 #1
0
 public void TestInitialize()
 {
     DBStore.getInstance().DBinit();
     s  = new Store("store", "store");
     su = new SubscribedUser("u", "u", new ShoppingBasket());
     sr = new StoreOwner(null, su, s);
 }
コード例 #2
0
        public void createStoreTest()
        {
            UserState      state = new Guest();
            SubscribedUser sub   = new SubscribedUser("dilan", "aaa", new ShoppingBasket());

            Assert.IsNull(state.createStore("Wallmart", "sells everything", sub));
        }
コード例 #3
0
        public void getPurchaseHistoryTest()
        {
            UserState      state = new Guest();
            SubscribedUser sub   = new SubscribedUser("Benny", "BENNY", new ShoppingBasket());

            Assert.IsTrue(Equals("ERROR: not a subscribed user", state.getPurchaseHistory(sub)));
        }
コード例 #4
0
        public void addManager(int storeid, string username,
                               bool editProduct, bool editDiscount, bool editPolicy, Session session)
        {
            SubscribedUser toAdd = DBSubscribedUser.getInstance().getSubscribedUser(username);

            if (toAdd == null)
            {
                throw new DoesntExistException("no such username");
            }
            Store store = DBStore.getInstance().getStore(storeid);

            if (store == null)
            {
                throw new DoesntExistException("no such store");
            }
            StoreRole sr = store.getStoreRole(session.getSubscribedUser());

            if (sr.getStore() != store)
            {
                throw new RoleException("this user can't appoint to this store");
            }
            Permissions permissions = new Permissions(editProduct, editDiscount, editPolicy);

            sr.addManager(toAdd, permissions);
        }
コード例 #5
0
 public void TestInitialize()
 {
     MarketSystem.initTestWitOutRead();
     s = new Store("store", "store");
     DBStore.getInstance().addStore(s);
     su = new SubscribedUser("u", "u", new ShoppingBasket());
     sr = new StoreOwner(null, su, s);
 }
コード例 #6
0
ファイル: TwitterModule.cs プロジェクト: Nedute/discord
        public async override Task UpdateLoop()
        {
            foreach (var user in SubscribedUsers)
            {
                user.channels.Clear();
            }
            foreach (var boundUser in Shinoa.DatabaseConnection.Table <TwitterBinding>())
            {
                if (SubscribedUsers.Any(item => item.username == boundUser.TwitterUserName))
                {
                    SubscribedUsers.Find(item => item.username == boundUser.TwitterUserName).channels.Add(
                        Shinoa.DiscordClient.GetChannel(ulong.Parse(boundUser.ChannelId)) as ITextChannel);
                }
                else
                {
                    var newUser = new SubscribedUser();
                    newUser.username = boundUser.TwitterUserName;
                    newUser.channels.Add(Shinoa.DiscordClient.GetChannel(ulong.Parse(boundUser.ChannelId)) as ITextChannel);
                    this.SubscribedUsers.Add(newUser);
                }
            }

            foreach (var user in SubscribedUsers)
            {
                var newestTweet = GetNewestTweet(user.username);

                if (newestTweet != null)
                {
                    if (user.lastTweetIds.Count == 0)
                    {
                        user.lastTweetIds.Enqueue(newestTweet.id);
                    }
                    else if (!user.lastTweetIds.Contains(newestTweet.id))
                    {
                        if (newestTweet.isRetweet && !user.retweetsEnabled)
                        {
                            continue;
                        }

                        user.lastTweetIds.Enqueue(newestTweet.id);
                        foreach (var channel in user.channels)
                        {
                            await channel.SendEmbedAsync(newestTweet.GetEmbed());
                        }
                    }
                }

                while (user.lastTweetIds.Count > 5)
                {
                    user.lastTweetIds.Dequeue();
                }
            }
        }
コード例 #7
0
 public void getPurchaseHistoryTest()
 {
     try
     {
         UserState      state = new Guest();
         SubscribedUser sub   = new SubscribedUser("Benny", "BENNY", new ShoppingBasket());
         state.getPurchaseHistory(sub);
         Assert.Fail();
     }
     catch (UserStateException) {
         Assert.IsTrue(true);
     }
 }
コード例 #8
0
 public void createStoreTest()
 {
     try
     {
         UserState      state = new Guest();
         SubscribedUser sub   = new SubscribedUser("dilan", "aaa", new ShoppingBasket());
         state.createStore("Wallmart", "sells everything", sub);
         Assert.Fail();
     }
     catch (UserStateException) {
         Assert.IsTrue(true);
     }
 }
コード例 #9
0
        public void removeProduct(int productid, Session session)
        {
            Product product = DBProduct.getInstance().getProductByID(productid);

            if (product == null)
            {
                throw new DoesntExistException("no such username");
            }

            SubscribedUser user = session.getSubscribedUser();

            StoreRole sr = DBStore.getInstance().getStoreRole(product.getStore(), user);

            sr.removeProduct(product);
        }
コード例 #10
0
        public void decFromProductQuantity(int productid, int amount, Session session)
        {
            Product product = DBProduct.getInstance().getProductByID(productid);

            if (product == null)
            {
                throw new DoesntExistException("no such username");
            }

            SubscribedUser user = session.getSubscribedUser();

            StoreRole sr = DBStore.getInstance().getStoreRole(product.getStore(), user);

            sr.decFromProductQuantity(product, amount);
        }
コード例 #11
0
        public void registerTest()
        {
            DBSubscribedUser dbsubscribedUser = DBSubscribedUser.getInstance();
            SubscribedUser   sub3             = new SubscribedUser("Benny", "aaaa", new ShoppingBasket());

            dbsubscribedUser.register(sub3);

            Session   session = new Session();
            UserState state   = session.getState();

            Assert.IsTrue(Equals(state.register("Benny", "aaaa", session), "ERROR: username already exists"));
            Assert.IsTrue(Equals(state.register("Viva", "Diva", session), ""));
            Assert.IsTrue(state is Guest);
            dbsubscribedUser.cleanDB();
        }
コード例 #12
0
        public void setProductDiscount(int productid, int discount, Session session)
        {
            Product product = DBProduct.getInstance().getProductByID(productid);

            if (product == null)
            {
                throw new DoesntExistException("no such username");
            }

            SubscribedUser user = session.getSubscribedUser();

            DBStore   storeDB = DBStore.getInstance();
            StoreRole sr      = storeDB.getStoreRole(product.getStore(), user);

            //??????????????????????????????/
            //sr.setProductDiscount(product, discount);
        }
コード例 #13
0
        public void logoutTest()
        {
            DBSubscribedUser dbsubscribedUser = DBSubscribedUser.getInstance();
            SubscribedUser   sub2             = new SubscribedUser("Gal", "Gadot", new ShoppingBasket());

            dbsubscribedUser.register(sub2);

            Session   session = new Session();
            UserState state   = session.getState();

            state.login("Gal", "Gadot", session);
            SubscribedUser user = session.getSubscribedUser();

            session.getState().logout(user, session);
            Assert.IsTrue(session.getState() is Guest);
            Assert.IsNull(dbsubscribedUser.getloggedInUser("Gal"));
            dbsubscribedUser.cleanDB();
        }
コード例 #14
0
        public void loginTest1()
        {
            DBSubscribedUser dbsubscribedUser = DBSubscribedUser.getInstance();
            SubscribedUser   sub1             = new SubscribedUser("Danny", dbsubscribedUser.encryptPassword("Shovevani"), new ShoppingBasket());

            dbsubscribedUser.register(sub1);

            Session   session = new Session();
            UserState state   = session.getState();

            try
            {
                state.login("bob", "dilan", session);
                Assert.Fail();
            } catch (LoginException)
            {
                Assert.IsTrue(true);
            }
        }
コード例 #15
0
        public void loginTest()
        {
            DBSubscribedUser dbsubscribedUser = DBSubscribedUser.getInstance();
            SubscribedUser   sub1             = new SubscribedUser("Danny", dbsubscribedUser.encryptPassword("Shovevani"), new ShoppingBasket());

            dbsubscribedUser.register(sub1);

            Session   session = new Session();
            UserState state   = session.getState();

            Assert.IsTrue(Equals(state.login("bob", "dilan", session), "ERROR: username does not exist"));
            Assert.IsTrue(Equals(state.login("Danny", "Shovevani", session), ""));
            Assert.IsTrue(session.getState() is LoggedIn);

            Session   session2 = new Session();
            UserState state2   = session2.getState();

            Assert.IsTrue(Equals(state.login("Danny", "aaaa", session2), "ERROR: password incorrect"));
            dbsubscribedUser.cleanDB();
        }
コード例 #16
0
        public void registerTest1()
        {
            DBSubscribedUser dbsubscribedUser = DBSubscribedUser.getInstance();
            SubscribedUser   sub3             = new SubscribedUser("Benny", "aaaa", new ShoppingBasket());

            dbsubscribedUser.register(sub3);

            Session   session = new Session();
            UserState state   = session.getState();

            try
            {
                state.register("Benny", "aaaa", session);
                Assert.Fail();
            }
            catch (RegisterException)
            {
                Assert.IsTrue(state is Guest);
            }
        }
コード例 #17
0
        public void addOwner(int storeid, string username, Session session)
        {
            SubscribedUser toAdd = DBSubscribedUser.getInstance().getSubscribedUser(username);

            if (toAdd == null)
            {
                throw new DoesntExistException("no such username");
            }
            Store store = DBStore.getInstance().getStore(storeid);

            if (store == null)
            {
                throw new DoesntExistException("no such store");
            }
            StoreRole sr = store.getStoreRole(session.getSubscribedUser());

            if (sr.getStore() != store)
            {
                throw new RoleException("this user can't appoint to this store");
            }
            sr.addOwner(toAdd);
        }
コード例 #18
0
        public void removeRole(int storeid, string username, Session session)
        {
            SubscribedUser toRemove = DBSubscribedUser.getInstance().getSubscribedUser(username);

            if (toRemove == null)
            {
                throw new DoesntExistException("no such username");
            }
            Store store = DBStore.getInstance().getStore(storeid);

            if (store == null)
            {
                throw new DoesntExistException("no such store");
            }
            StoreRole sr = store.getStoreRole(session.getSubscribedUser());

            if (sr.getStore() != store)
            {
                throw new RoleException("this user can't remove roles from this store");
            }
            sr.remove(toRemove);
        }
コード例 #19
0
        public void purchaseTest()
        {
            userService = UserService.getInstance();
            session     = userService.startSession();

            userService.register(session, "christina", "2222");
            userService.login(session, "christina", "2222");
            SubscribedUser user     = session.getSubscribedUser();
            Store          store1   = userService.createStore(session, "Zoo Land", "pets");
            Product        product1 = storeService.addProduct("dogs", "big dogs", 80, 2, 4, store1, session);
            Product        product2 = storeService.addProduct("cats", "grey cats", 110, 5, 10, store1, session);

            Store   store2   = userService.createStore(session, "Shufersal", "food");
            Product product3 = storeService.addProduct("milk", "3%", 65, 2, 1, store2, session);
            Product product4 = storeService.addProduct("water", "blue water", 70, 4, 4, store2, session);

            userService.addToShoppingBasket(product1, 2, session);
            userService.addToShoppingBasket(product2, 3, session);
            userService.addToShoppingBasket(product3, 1, session);
            userService.addToShoppingBasket(product4, 3, session);

            Assert.IsTrue(Equals(userService.purchaseBasket(session), ""));
            Assert.IsTrue(product1.getQuantityLeft() == 2);
            Assert.IsTrue(product2.getQuantityLeft() == 7);
            Assert.IsTrue(product3.getQuantityLeft() == 0);
            Assert.IsTrue(product4.getQuantityLeft() == 1);


            session = userService.startSession();
            userService.addToShoppingBasket(product1, 2, session);
            Assert.IsTrue(Equals(userService.purchaseBasket(session), ""));
            Assert.IsTrue(product1.getQuantityLeft() == 0);

            Assert.IsFalse(Equals(userService.addToShoppingBasket(product2, -1, session), ""));
            userService.addToShoppingBasket(product1, 2, session);
            userService.addToShoppingBasket(product2, 4, session);
            Assert.IsFalse(Equals(userService.purchaseBasket(session), ""));
        }
コード例 #20
0
        public async Task <IActionResult> AddEmail([FromBody] string email)
        {
            if (!ModelState.IsValid || string.IsNullOrWhiteSpace(email))
            {
                return(StatusCode(400));
            }

            var dbSubscribedUser = await _subscribedUserService.GetSubscribedUserByEmail(email);

            if (dbSubscribedUser != null)
            {
                return(Json(new { success = false, responseText = Resources.Resources.EmailAlreadyRegistered }));
            }

            var subscribedUser = new SubscribedUser()
            {
                Email = email
            };

            await _subscribedUserService.AddSubscribedUserAsync(subscribedUser);

            return(Json(new { success = true }));
        }
コード例 #21
0
        public void removeSubscribedUserTest()
        {
            Session        sessionOwner       = userService.startSession();
            Session        sessionManager     = userService.startSession();
            SubscribedUser subscribedToDelete = sessionManager.getSubscribedUser();

            userService.register(sessionOwner, "bob", "theOwner");
            userService.register(sessionManager, "rob", "theManager");
            userService.login(sessionOwner, "bob", "theOwner");
            Store     store1 = userService.createStore(sessionOwner, "Zara", "clothes");
            Store     store2 = userService.createStore(sessionOwner, "Urban", "clothes");
            StoreRole owner1 = sessionOwner.getSubscribedUser().getStoreRole(store1);

            owner1.addManager(sessionManager.getSubscribedUser(), new Permissions(true, true, true));
            StoreRole owner2 = sessionOwner.getSubscribedUser().getStoreRole(store2);

            owner2.addOwner(sessionManager.getSubscribedUser());

            Session sessionAdmin = userService.startSession();

            Assert.AreEqual(userService.login(sessionAdmin, "admin", "1234"), "");
            Assert.IsTrue(Equals(userService.removeUser(sessionAdmin, "rob"), ""));

            Assert.IsTrue(sessionManager.getState() is Guest);
            Assert.IsTrue(store1.getStoreRole(subscribedToDelete) == null);
            Assert.IsTrue(store2.getStoreRole(subscribedToDelete) == null);
            Assert.IsTrue(sessionManager.getSubscribedUser() == null);

            //user does not exist anymore, login fails
            Assert.AreNotEqual(userService.login(sessionAdmin, "rob", "theManager"), "");

            //alternatives
            Assert.IsFalse(Equals(userService.removeUser(sessionAdmin, "haim"), ""));
            Assert.IsFalse(Equals(userService.removeUser(sessionAdmin, "admin"), ""));
            Assert.IsFalse(Equals(userService.removeUser(sessionManager, "rob"), ""));
            Assert.IsFalse(Equals(userService.removeUser(sessionOwner, "rob"), ""));
        }
コード例 #22
0
        public void createStoreBySubscribedUserTest()
        {
            UserService userService = UserService.getInstance();

            session = userService.startSession();

            userService.register(session, "anna", "banana");
            userService.login(session, "anna", "banana");
            SubscribedUser   user  = session.getSubscribedUser();
            Store            store = userService.createStore(session, "Apple", "apples");
            List <StoreRole> roles = store.getRoles();

            Assert.IsTrue(roles.Count == 1);
            StoreRole role = roles[0];

            Assert.IsTrue(role is StoreOwner);
            Assert.IsTrue(Equals(role.getUser(), user));

            List <StoreRole> userRoles = user.getStoreRoles();

            Assert.IsTrue(userRoles.Contains(role));

            Assert.AreEqual(userService.createStore(null, "", ""), null);
        }
コード例 #23
0
        public async Task AddSubscribedUserAsync(SubscribedUser subscribedUser)
        {
            await _garvanContext.SubscribedUsers.AddAsync(subscribedUser);

            await _garvanContext.SaveChangesAsync();
        }