public void SetUpModel( ) { _engine = new PasswordDerivationEngine( PasswordGenerators.Generators ); _passwordData = new InMemoryPasswordData( ); _passwordRepository = new PasswordRepository( _passwordData ); var digest = _engine.Derive( new PasswordRequest( "abij", "1234".ToSecureString( ), 3, PasswordGenerators.LegacyFull ) ); _original = new PasswordDigestDocumentBuilder { Digest = digest.Digest, CreatedOn = new DateTime( 2011, 11, 1 ), ModifiedOn = new DateTime( 2011, 11, 3 ), MasterPasswordId = Guid.NewGuid( ), Note = "AB IJ" }; _passwordRepository.SavePassword( _original ); _timeProvider = new StubTimeProvider { Now = new DateTime( 2011, 11, 16 ) }; IMasterPasswordMatcher masterPasswordMatcher = new MasterPasswordMatcher( _engine, _passwordRepository ); _model = new PasswordEditorModel( _passwordRepository, _engine, masterPasswordMatcher, _timeProvider, new BaselinePasswordDocument( _original ) ); }
public void SetupPasswordCollection( ) { _inMemoryPasswordData = new InMemoryPasswordData( ); _allPasswords = new[ ] { TestPasswords.Abcd, TestPasswords.Efgh, TestPasswords.Ijkl }.ToList( ); _inMemoryPasswordData.SavePasswords( _allPasswords ); _passwordRepository = new PasswordRepository( _inMemoryPasswordData ); }
public void MergeRecognizesIdenticalMasterPasswords( ) { // Set up Guid sourceMasterPasswordId = Guid.NewGuid( ); var sourceAbcd = WithMasterPasswordId( TestPasswords.Abcd, sourceMasterPasswordId ); var sourceEfgh = WithMasterPasswordId( TestPasswords.Efgh, sourceMasterPasswordId ); var sourcePasswords = new List<PasswordDigestDocument> { sourceAbcd, sourceEfgh }; Guid targetMasterPasswordId = Guid.NewGuid( ); var targetAbcd = WithMasterPasswordId( TestPasswords.Abcd, targetMasterPasswordId ); var targetIjkl = WithMasterPasswordId( TestPasswords.Ijkl, targetMasterPasswordId ); var targetData = new InMemoryPasswordData( ); targetData.SavePasswords( new List<PasswordDigestDocument> { targetAbcd, targetIjkl } ); IPasswordRepository targetRepository = new PasswordRepository( targetData ); // Exercise targetRepository.Merge( sourcePasswords ); // Verify Assert.That( targetData.LoadPasswords( ), Is.EquivalentTo( new[ ] { targetAbcd, targetIjkl, WithMasterPasswordId( sourceEfgh, targetMasterPasswordId ) } ) ); }
public void MergeSkipsOurLessRecentPasswordsToTarget( ) { // Set up PasswordDigestDocument abcdUpdated = Update( TestPasswords.Abcd, new DateTime( 2011, 11, 9 ) ); var sourcePasswords = new List<PasswordDigestDocument> { TestPasswords.Abcd, TestPasswords.Ijkl }; var targetData = new InMemoryPasswordData( ); targetData.SavePasswords( new List<PasswordDigestDocument> { abcdUpdated, TestPasswords.Efgh } ); IPasswordRepository targetRepository = new PasswordRepository( targetData ); // Exercise targetRepository.Merge( sourcePasswords ); // Verify Assert.That( targetData.LoadPasswords( ), Is.EquivalentTo( new[ ] { abcdUpdated, TestPasswords.Efgh, TestPasswords.Ijkl } ) ); }
public void MergeAddsOurDeletedPasswordsToTarget( ) { // Set up var sourcePasswords = new List<PasswordDigestDocument> { TestPasswords.Abcd, TestPasswords.Ijkl }; var targetData = new InMemoryPasswordData( ); targetData.SavePasswords( new List<PasswordDigestDocument> { TestPasswords.Efgh } ); IPasswordRepository targetRepository = new PasswordRepository( targetData ); // Exercise targetRepository.Merge( sourcePasswords ); // Verify Assert.That( targetData.LoadPasswords( ), Is.EquivalentTo( new[ ] { TestPasswords.Abcd, TestPasswords.Efgh, TestPasswords.Ijkl } ) ); }