Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }