Exemple #1
0
    public async Task CanGetAfterSetting()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        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.Values.Remove(secret.Guid);
        Assert.IsNull(GetSecretCrewMember(sut, secret));
        await sut.GetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.AreEqual(SomeFirstName, GetSecretCrewMember(sut, secret).FirstName);
        Assert.AreEqual(SomeSurName, GetSecretCrewMember(sut, secret).SurName);
        Assert.AreEqual(SomeRank, GetSecretCrewMember(sut, secret).Rank);
        CleanUpSecretRepository(false);
    }
Exemple #2
0
    public async Task CanGetDefault()
    {
        var sut = Container.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 SecretCrewMember();

        sut.Values[secret.Guid] = new CrewMember {
            FirstName = SomeFirstName
        };
        sut.Reset(secret, false);
        Assert.IsNull(GetSecretCrewMember(sut, secret));
        var crewMember = await sut.GetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.AreEqual(SecretCrewMember.DefaultFirstName, crewMember.FirstName);
        CleanUpSecretRepository(false);
    }
Exemple #3
0
    public void DoesNotExistInRepositoryAfterRemoval()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        Assert.IsFalse(sut.Exists(secret, false));
    }
Exemple #4
0
    public async Task CanWorkWithAlternativePeghEnvironment()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);
        var alternativeSut = AlternativeContainer.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(alternativeSut);

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        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());

        secret = new SecretCrewMember();
        alternativeSut.Reset(secret, false);
        alternativeSut.Values[secret.Guid] = new CrewMember {
            FirstName = "ALT " + SomeFirstName, SurName = "ALT" + SomeSurName, Rank = "ALT" + SomeRank
        };
        errorsAndInfos = new ErrorsAndInfos();
        await alternativeSut.SetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());

        sut.Values.Remove(secret.Guid);
        alternativeSut.Values.Remove(secret.Guid);

        await alternativeSut.GetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.AreEqual("ALT " + SomeFirstName, GetSecretCrewMember(alternativeSut, secret).FirstName);

        await sut.GetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.AreEqual(SomeFirstName, GetSecretCrewMember(sut, secret).FirstName);

        CleanUpSecretRepository(false);
        CleanUpSecretRepository(true);
    }
Exemple #5
0
    public async Task DoesNotExistAfterTryingToSaveInvalidXml()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        var valueOrDefault = secret.DefaultValue;
        var xml            = Container.Resolve <IXmlSerializer>().Serialize(valueOrDefault).Replace("Crew", "Curfew");
        var errorsAndInfos = new ErrorsAndInfos();
        await sut.WriteToFileAsync(secret, xml, false, false, errorsAndInfos);

        Assert.IsTrue(errorsAndInfos.Errors.All(e => e.Contains("The \'http://www.aspenlaub.net:CurfewMember\' element is not declared")), errorsAndInfos.ErrorsToString());
        Assert.IsFalse(sut.Exists(secret, false));
        CleanUpSecretRepository(false);
    }
Exemple #6
0
    public async Task ExistsAfterSetting()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        var errorsAndInfos = new ErrorsAndInfos();
        await sut.SetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.IsTrue(sut.Exists(secret, false));
        sut.Reset(secret, false);
        Assert.IsFalse(sut.Exists(secret, false));
        CleanUpSecretRepository(false);
    }
Exemple #7
0
    public async Task DefaultSecretIsNotReturnedIfSecretSaysItShouldNotBeSaved()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var errorsAndInfos = new ErrorsAndInfos();

        await SetShouldDefaultSecretsBeStored(sut, false, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());

        var secret = new SecretCrewMember();

        sut.Reset(secret, false);
        Assert.IsNull(await sut.GetAsync(secret, errorsAndInfos));
        Assert.IsTrue(errorsAndInfos.Errors.Any(e => e.Contains("Secret has not been defined", StringComparison.InvariantCultureIgnoreCase)), errorsAndInfos.ErrorsToString());
        CleanUpSecretRepository(false);
    }
Exemple #8
0
    public async Task DefaultSecretIsSavedIfSecretSaysSo()
    {
        var sut = Container.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 SecretCrewMember();

        sut.Reset(secret, false);
        await sut.GetAsync(secret, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        Assert.IsTrue(sut.Exists(secret, false));
        CleanUpSecretRepository(false);
    }
Exemple #9
0
    public async Task DefaultSecretSampleIsSavedEvenIfSecretSaysNo()
    {
        var sut = Container.Resolve <ISecretRepository>() as SecretRepository;

        Assert.IsNotNull(sut);

        var errorsAndInfos = new ErrorsAndInfos();

        await SetShouldDefaultSecretsBeStored(sut, false, errorsAndInfos);

        Assert.IsFalse(errorsAndInfos.Errors.Any(), errorsAndInfos.ErrorsToString());
        CleanUpSecretRepository(false);

        var secret = new SecretCrewMember();
        var folder = SecretRepositoryFolder(true, false);

        Assert.AreEqual(0, Directory.GetFiles(folder, secret.Guid + "*.*").Length);
        sut.SaveSample(secret, false);
        Assert.AreEqual(1, Directory.GetFiles(folder, secret.Guid + "*.xml").Length);
        Assert.AreEqual(1, Directory.GetFiles(folder, secret.Guid + "*.xsd").Length);
        CleanUpSecretRepository(false);
    }