public async Task CannotGetEncryptedSecretAfterSettingIfDisguiserFails() { var sut = Container.Resolve <ISecretRepository>() as SecretRepository; Assert.IsNotNull(sut); var secret = new EncryptedSecretCrewMember(); sut.Reset(secret, true); sut.Values[secret.Guid] = new CrewMember { FirstName = SomeFirstName, SurName = SomeSurName, Rank = SomeRank }; var errorsAndInfos = new ErrorsAndInfos(); await sut.SetAsync(secret, errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); sut = ContainerWithMockedDisguiser.Resolve <ISecretRepository>() as SecretRepository; Assert.IsNotNull(sut); Assert.IsNull(GetSecretCrewMember(sut, secret)); await sut.GetAsync(secret, errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); Assert.IsNull(GetSecretCrewMember(sut, secret)); CleanUpSecretRepository(false); }
public async Task CannotGetEncryptedSecretAfterSettingIfPassphraseIsWrong() { var sut = Container.Resolve <ISecretRepository>() as SecretRepository; Assert.IsNotNull(sut); var secret = new EncryptedSecretCrewMember(); sut.Reset(secret, true); sut.Values[secret.Guid] = new CrewMember { FirstName = SomeFirstName, SurName = SomeSurName, Rank = SomeRank }; var errorsAndInfos = new ErrorsAndInfos(); await sut.SetAsync(secret, errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); sut = Container.Resolve <ISecretRepository>() as SecretRepository; Assert.IsNotNull(sut); CsArgumentPrompterMock.Setup(p => p.PromptForArgument(It.IsAny <string>(), It.IsAny <string>())).Returns(() => "Wrong-Password"); Assert.IsNull(GetSecretCrewMember(sut, secret)); try { await sut.GetAsync(secret, errorsAndInfos); throw new Exception("ZipException expected"); } catch (ZipException e) { Assert.IsTrue(e.Message.Contains("Invalid password", StringComparison.InvariantCultureIgnoreCase)); } Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); Assert.IsNull(GetSecretCrewMember(sut, secret)); CleanUpSecretRepository(false); }
public async Task CanGetDefaultForEncryptedSecretWithEmptyPassphraseButItIsNotSaved() { var sut = ContainerWithMockedDisguiser.Resolve <ISecretRepository>() as SecretRepository; Assert.IsNotNull(sut); var errorsAndInfos = new ErrorsAndInfos(); await SetShouldDefaultSecretsBeStored(sut, true, errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); var secret = new EncryptedSecretCrewMember(); sut.Values[secret.Guid] = new CrewMember { FirstName = SomeFirstName }; sut.Reset(secret, true); Assert.IsNull(GetSecretCrewMember(sut, secret)); Assert.IsFalse(sut.Exists(secret, true)); var crewMember = await sut.GetAsync(secret, errorsAndInfos); Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString()); Assert.IsFalse(sut.Exists(secret, true)); Assert.AreEqual(EncryptedSecretCrewMember.DefaultFirstName, crewMember.FirstName); CleanUpSecretRepository(false); }