public UserPoolViewModel(UserPoolModel pool)
 {
     UserPool= pool;
     LoadUser = new Command(OnLoadUserExecute);
     AddUser = new Command(OnAddUserExecute);
     RemoveUser = new Command(OnRemoveUserExecute);
     EditUser = new Command(OnEditUserExecute);
 }
 public void Users_Synchronize_inPool_Adding_from_pool()
 {
     //Testing the Add function in pool
     UserPoolModel pool1 = new UserPoolModel();
     Assert.AreEqual(0,pool1.Counter);
     pool1.Add(UserA);
     Assert.AreEqual(1,pool1.Counter);
 }
 public void PoolCreated_CheckProperties()
 {
     var pool = new UserPoolModel();
     Assert.IsNotNull(pool.Users);
     Assert.IsEmpty(pool.Users);
     Assert.IsNotNull(pool.UsersInSources);
     Assert.IsEmpty(pool.UsersInSources);
 }
 public UserPoolViewModel(UserPoolModel pool)
 {
     UserPool   = pool;
     LoadUser   = new Command(OnLoadUserExecute);
     AddUser    = new Command(OnAddUserExecute);
     RemoveUser = new Command(OnRemoveUserExecute);
     EditUser   = new Command(OnEditUserExecute);
 }
        public void Users_Synchronize_inPool_Adding_from_pool()
        {
            //Testing the Add function in pool
            UserPoolModel pool1 = new UserPoolModel();

            Assert.AreEqual(0, pool1.Counter);
            pool1.Add(UserA);
            Assert.AreEqual(1, pool1.Counter);
        }
        public void PoolCreated_CheckProperties()
        {
            var pool = new UserPoolModel();

            Assert.IsNotNull(pool.Users);
            Assert.IsEmpty(pool.Users);
            Assert.IsNotNull(pool.UsersInSources);
            Assert.IsEmpty(pool.UsersInSources);
        }
 public void Users_Synchronize_inPool_Removing_from_pool()
 {
     //Testing the remove function in pool
     UserPoolModel pool2 = new UserPoolModel();
     Assert.AreEqual(0,pool2.Counter);
     pool2.Add(UserB);
     Assert.AreEqual(1,pool2.Counter);
     pool2.Remove(UserB);
     Assert.AreEqual(0,pool2.Counter);
 }
        public void Synchronizing()
        {
            var pool = new UserPoolModel();
            var repos = Substitute.For<IRepository>();
            var synchronizer = new UserSynchronizer();

            repos.Users.Returns(x => new UserInSourceBase[] { new StubUserInSource() });

            synchronizer.Synchronize(pool, repos);
            Assert.AreEqual(2,pool.Counter);
        }
        public void Synchronizing()
        {
            var pool         = new UserPoolModel();
            var repos        = Substitute.For <IRepository>();
            var synchronizer = new UserSynchronizer();

            repos.Users.Returns(x => new UserInSourceBase[] { new StubUserInSource() });

            synchronizer.Synchronize(pool, repos);
            Assert.AreEqual(2, pool.Counter);
        }
        public void Users_Synchronize_inPool_Removing_from_pool()
        {
            //Testing the remove function in pool
            UserPoolModel pool2 = new UserPoolModel();

            Assert.AreEqual(0, pool2.Counter);
            pool2.Add(UserB);
            Assert.AreEqual(1, pool2.Counter);
            pool2.Remove(UserB);
            Assert.AreEqual(0, pool2.Counter);
        }
        public void PoolEmpty_Synchronize_PoolContainsDefaultUserAndUsersInSource()
        {
            var pool = new UserPoolModel();
            Assert.IsEmpty(pool.UsersInSources);
            //Assert.AreEqual(0, pool.UsersInSources.Count, "Pool is not empty after creation");

            // create a stub object implementing IRepository
            var repos = Substitute.For<IRepository>();

            // specify what property "Users" shall return on call
            repos.Users.Returns(x => new UserInSourceBase[] { new StubUserInSource() });

            //TODO:
            // Perform synchronization from the stub
            // prefer this for SRP

            Assert.IsNotEmpty(pool.UsersInSources);
        }
        public void PoolEmpty_Synchronize_PoolContainsDefaultUserAndUsersInSource()
        {
            var pool = new UserPoolModel();

            Assert.IsEmpty(pool.UsersInSources);
            //Assert.AreEqual(0, pool.UsersInSources.Count, "Pool is not empty after creation");

            // create a stub object implementing IRepository
            var repos = Substitute.For <IRepository>();

            // specify what property "Users" shall return on call
            repos.Users.Returns(x => new UserInSourceBase[] { new StubUserInSource() });


            //TODO:
            // Perform synchronization from the stub
            // prefer this for SRP

            Assert.IsNotEmpty(pool.UsersInSources);
        }
 public void Synchronize(UserPoolModel userpool, IRepository repository)
 {
     //userpool = UserPoolModel.Load(repository);
 }
 private void OnLoadUserExecute()
 {
     UserPoolModel.Load("Users.txt");
 }