public void TestSetup()
 {
     credential = new DomainCredential();
 }
        /// <summary>Copies the given credentials to this instance.</summary>
        /// <param name="value">The value to copy.</param>
        public void Copy(IDomainCredential value)
        {
            // Setup initial conditions.
            if (value == null) throw new ArgumentNullException("value");

            // Copy the values.
            UserName = value.UserName;
            Password = value.Password;
            Domain = value.Domain;
            IsDomainRequired = value.IsDomainRequired;
            IsValid = value.IsValid;
        }
        public void ShouldFireIsPopulatedChanged()
        {
            credential.UserName = "******";
            credential.Password = "******";

            credential.ShouldFirePropertyChanged<T>(() => credential.Domain = "Domain", m => m.IsPopulated);
            credential.ShouldNotFirePropertyChanged<T>(() => credential.Domain = "Domain", m => m.IsPopulated);
            credential.ShouldNotFirePropertyChanged<T>(() => credential.Domain = "NEW", m => m.IsPopulated);

            // --

            credential = new DomainCredential
            {
                IsDomainRequired = false,
                UserName = "******",
                Password = "******",
            };
            credential.IsPopulated.ShouldBe(true);
            credential.ShouldFirePropertyChanged<T>(() => credential.IsDomainRequired = true, m => m.IsPopulated);
            credential.IsPopulated.ShouldBe(false);

            // --

            credential = new DomainCredential
            {
                IsDomainRequired = true,
                UserName = "******",
                Password = "******",
            };
            credential.IsPopulated.ShouldBe(false);
            credential.ShouldFirePropertyChanged<T>(() => credential.IsDomainRequired = false, m => m.IsPopulated);
            credential.IsPopulated.ShouldBe(true);

            // --

            credential = new DomainCredential
            {
                IsDomainRequired = true,
                UserName = "******",
                Password = "******",
                Domain = "domain"
            };
            credential.IsPopulated.ShouldBe(true);
            credential.ShouldFirePropertyChanged<T>(() => credential.UserName = null, m => m.IsPopulated);
        }