コード例 #1
0
        public void TestSetUserAsMainForSecondDeveloper()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));
            AccountUnitOfWork   unit    = new AccountUnitOfWork(null, manager, this.Context);

            GetTwoUsers(unit);

            TelimenaUser jim  = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();
            TelimenaUser jack = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();

            DeveloperTeam jackDev = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jack.Id);
            DeveloperTeam jimDev  = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jim.Id);

            Assert.AreEqual(jackDev.Id, jack.GetDeveloperAccountsLedByUser().Single().Id);
            Assert.AreEqual(jimDev.Id, jim.GetDeveloperAccountsLedByUser().Single().Id);

            jimDev.SetMainUser(jack);
            unit.Complete();

            Assert.IsNotNull(jimDev.AssociatedUsers.Single(x => x.Id == jim.Id));
            Assert.IsNotNull(jimDev.AssociatedUsers.Single(x => x.Id == jack.Id));

            Assert.AreEqual(1, jim.AssociatedDeveloperAccounts.Count());
            Assert.AreEqual(jack, jimDev.MainUser);

            Assert.AreEqual(0, jim.GetDeveloperAccountsLedByUser().Count());
            Assert.AreEqual(2, jack.GetDeveloperAccountsLedByUser().Count());

            Assert.IsNotNull(jack.GetDeveloperAccountsLedByUser().Single(x => x.Id == jackDev.Id));
            Assert.IsNotNull(jack.GetDeveloperAccountsLedByUser().Single(x => x.Id == jimDev.Id));
        }
コード例 #2
0
        public void RegisterTest()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));
            AccountUnitOfWork   unit    = new AccountUnitOfWork(null, manager, this.Context);
            AccountController   sut     = new AccountController(unit, new Mock <ILog>().Object);

            RegisterViewModel model = new RegisterViewModel
            {
                Name = "Jim Beam"
                , ConfirmPassword = "******"
                , Password        = "******"
                , Email           = "*****@*****.**"
                , Role            = TelimenaRoles.Developer
            };

            ViewResult result = sut.Register(model).GetAwaiter().GetResult() as ViewResult;

            Assert.AreEqual("WaitForActivationInfo", result.ViewName);

            TelimenaUser user = unit.UserManager.FindByNameAsync(model.Email).GetAwaiter().GetResult();

            Assert.AreEqual("Jim Beam", user.DisplayName);
            Assert.IsTrue(user.RegisteredDate.Date == DateTime.UtcNow.Date);
            //Assert.IsFalse(user.IsActivated);
            Assert.IsTrue(unit.UserManager.IsInRoleAsync(user.Id, TelimenaRoles.Developer).GetAwaiter().GetResult());
            Assert.IsTrue(unit.UserManager.IsInRoleAsync(user.Id, TelimenaRoles.Viewer).GetAwaiter().GetResult());

            DeveloperTeam developerTeam = unit.DeveloperRepository.SingleOrDefault(x => x.MainUser.Id == user.Id);

            Assert.AreEqual(user.DisplayName, developerTeam.MainUser.DisplayName);
            Assert.AreEqual(user.Email, developerTeam.MainEmail);

            Assert.AreEqual(developerTeam, user.GetDeveloperAccountsLedByUser().Single());
        }
コード例 #3
0
        public void TestRemoveUserFromDeveloper()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));
            AccountUnitOfWork   unit    = new AccountUnitOfWork(null, manager, this.Context);

            GetTwoUsers(unit);

            TelimenaUser jim  = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();
            TelimenaUser jack = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();

            DeveloperTeam jackDev = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jack.Id);
        }
コード例 #4
0
        public static async Task <TelimenaUser> CreateTelimenaUser(TelimenaPortalContext context, string email, string displayName = null, [CallerMemberName] string caller = "")
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(context));

            AccountUnitOfWork unit = new AccountUnitOfWork(null, manager, context);


            TelimenaUser user = new TelimenaUser(caller + "_" + email, caller + "_" + (displayName ?? email.ToUpper()));
            await unit.RegisterUserAsync(user, "P@ssword", TelimenaRoles.Developer).ConfigureAwait(false);

            unit.Complete();
            return(user);
        }
コード例 #5
0
        public void TestRemoveDeveloper()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));

            AccountUnitOfWork unit = new AccountUnitOfWork(null, manager, this.Context);

            GetTwoUsers(unit);
            TelimenaUser jack = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();
            TelimenaUser jim  = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();

            DeveloperTeam jackDev = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jack.Id);

            jackDev.AssociateUser(jim);

            unit.DeveloperRepository.Remove(jackDev);
            unit.Complete();
            Assert.IsNotNull(this.Context.Users.Single(x => x.Id == jack.Id));
            Assert.IsNotNull(this.Context.Users.Single(x => x.Id == jim.Id));
            Assert.IsNull(unit.DeveloperRepository.SingleOrDefault(x => x.Id == jackDev.Id));
        }
コード例 #6
0
        public void TestAddSecondUserToDeveloperTwice()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));
            AccountUnitOfWork   unit    = new AccountUnitOfWork(null, manager, this.Context);

            GetTwoUsers(unit);

            TelimenaUser jim  = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();
            TelimenaUser jack = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();


            DeveloperTeam jackDev = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jack.Id);

            jackDev.AssociateUser(jim);
            unit.Complete();
            jackDev.AssociateUser(jim);
            unit.Complete();

            Assert.AreEqual(2, jackDev.AssociatedUsers.Count);
        }
コード例 #7
0
ファイル: Helpers.cs プロジェクト: Usamaahmad751/Telimena
        public static async Task <TelimenaUser> CreateTelimenaUser(TelimenaPortalContext context, string email, string displayName = null, [CallerMemberName] string caller = "")
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(context));

            AccountUnitOfWork unit = new AccountUnitOfWork(null, manager, context);


            TelimenaUser user   = new TelimenaUser(caller + "" + email, caller + "" + (displayName ?? email.ToUpper()));
            var          result = await unit.RegisterUserAsync(user, "P@ssword", TelimenaRoles.Developer).ConfigureAwait(false);

            if (!result.Item1.Succeeded)
            {
                var msg = result.Item1.Errors?.FirstOrDefault();
                if (msg != null && !msg.Contains("is already taken."))
                {
                    Assert.Fail($"Failed to register user {user.UserName}. Error: {result.Item1.Errors?.FirstOrDefault()}");
                }
            }
            unit.Complete();
            return(user);
        }
コード例 #8
0
        public void TestRemoveUser()
        {
            TelimenaUserManager manager = new TelimenaUserManager(new UserStore <TelimenaUser>(this.Context));
            AccountUnitOfWork   unit    = new AccountUnitOfWork(null, manager, this.Context);

            GetTwoUsers(unit);
            TelimenaUser jack = unit.UserManager.FindByNameAsync(Helpers.GetName("*****@*****.**")).GetAwaiter().GetResult();

            DeveloperTeam jackDev   = unit.DeveloperRepository.FirstOrDefault(x => x.MainUser.Id == jack.Id);
            var           jackDevId = jackDev.Id;

            Assert.AreEqual(jackDevId, jack.AssociatedDeveloperAccounts.Single().Id);

            unit.UserManager.DeleteAsync(jack).GetAwaiter().GetResult();
            unit.Complete();
            Assert.IsNull(unit.UserManager.FindByNameAsync(jack.UserName).GetAwaiter().GetResult());

            jackDev = unit.DeveloperRepository.FirstOrDefault(x => x.Id == jackDevId);

            Assert.IsNull(jackDev.MainUser);
            Assert.AreEqual(Helpers.GetName("*****@*****.**"), jackDev.MainEmail);
        }