public OnePasswordToolMock VerifyCalledWith(GetOnePasswordNoteQuery expected)
 {
     Verify(x => x.Execute(
                It.Is <GetOnePasswordNoteQuery>(q => q.IsEquivalentTo(expected)),
                It.IsAny <CancellationToken>()), Times.Once);
     return(this);
 }
Exemplo n.º 2
0
        async Task LoadAsync()
        {
            var appSettingsName = $"{_source.AppName}.AppSettings";

            var query = new GetOnePasswordNoteQuery
            {
                Organization = _source.Organization,
                Item         = appSettingsName,
                Vault        = _source.Vault,
                Environment  = _source.Environment,
                SessionToken = _source.SessionToken
            };

            var result = await _source.Tool.Execute(query);

            var data = new Dictionary <string, string>();

            if (result?.Fields == null)
            {
                throw new OnePasswordConfigurationException($"1Password {query.Environment} environment section fields cannot be empty");
            }

            foreach (var field in result.Fields)
            {
                if (string.IsNullOrWhiteSpace(field.Name))
                {
                    throw new OnePasswordConfigurationException($"1Password {query.Environment} environment section fields name cannot be empty");
                }
                if (string.IsNullOrWhiteSpace(field.Value))
                {
                    throw new OnePasswordConfigurationException($"1Password {query.Environment} environment section field '{field.Name}' value cannot be empty");
                }

                data[field.Name !] = field.Value !;
Exemplo n.º 3
0
            public Fixture()
            {
                Tool         = new OnePasswordToolMock();
                AppName      = "Appy.Fake";
                Organization = "appy";
                Vault        = "Development";
                Environment  = "DEV";
                SessionToken = "FakeToken";
                FieldName    = "Database";
                FieldValue   = "Test";

                ValidNoteQuery = new GetOnePasswordNoteQuery
                {
                    Item         = $"{AppName}.AppSettings",
                    Organization = Organization,
                    Vault        = Vault,
                    Environment  = Environment,
                    SessionToken = SessionToken
                };

                ValidNoteQueryResult = new GetOnePasswordNoteQueryResult
                {
                    Title  = "DEV",
                    Fields = new List <OnePasswordField>
                    {
                        new OnePasswordField {
                            Name = FieldName, Value = FieldValue
                        }
                    }
                };
            }
                public async Task ShouldDecorateQueryWithMissingPropertiesFromCurrentSession()
                {
                    var fixture = new Fixture()
                                  .WithCurrentSession();

                    var query = new GetOnePasswordNoteQuery
                    {
                        Item = "Demo.AppSettings",
                    };

                    var sut = fixture.CreateSubject();

                    var expectedInnerQuery = new GetOnePasswordNoteQuery
                    {
                        Organization = fixture.Organization,
                        Item         = query.Item,
                        Vault        = fixture.Vault,
                        Environment  = fixture.Environment,
                        SessionToken = fixture.SessionToken
                    };

                    var result = await sut.Execute(query);

                    fixture.InnerTool.VerifyCalledWith(expectedInnerQuery);
                }
Exemplo n.º 5
0
                public async Task ShouldThrowWhenAnyErrorProcessingQuery()
                {
                    var fixture = new Fixture().WithFailedProcessResult();
                    var sut     = fixture.CreateSubject();

                    var         query = new GetOnePasswordNoteQuery();
                    Func <Task> act   = async() => { await sut.Execute(query); };

                    await act.Should().ThrowAsync <OnePasswordToolException>();
                }
        public async Task <GetOnePasswordNoteQueryResult> Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default)
        {
            var session = await _sessionStorage.GetCurrent();

            query.Organization = (query.Organization ?? session.Organization) !;
            query.Environment  = (query.Environment ?? session.Environment) !;
            query.Vault        = (query.Vault ?? session.Vault) !;
            query.SessionToken = (query.SessionToken ?? session.SessionToken) !;

            return(await _innerTool.Execute(query, cancellationToken));
        }
Exemplo n.º 7
0
                public async Task ShouldValidateAndThrow()
                {
                    var fixture = new Fixture().WithInvalidValidationResult <GetOnePasswordNoteQuery>();

                    var query = new GetOnePasswordNoteQuery();

                    var sut = fixture.CreateSubject();

                    Func <Task> act = async() => await sut.Execute(query);

                    await act.Should().ThrowAsync <ValidationException>();
                }
Exemplo n.º 8
0
                public async Task InitializeAsync()
                {
                    _query = new GetOnePasswordNoteQuery
                    {
                        Organization = "appy",
                        Environment  = "DEV",
                        Vault        = "Development",
                        Item         = "Demo.AppSettings",
                        SessionToken = "FakeToken"
                    };

                    var sut = _fixture.CreateSubject();

                    _result = await sut.Execute(_query);
                }
        public void ShouldBeValidWhenAllRequiredPropertiesHaveBeenSet(
            string item, string organization, string vault, string environment, string sessionToken)
        {
            var sut = new GetOnePasswordNoteQueryValidator();

            var query = new GetOnePasswordNoteQuery
            {
                Item         = item,
                Organization = organization,
                Vault        = vault,
                Environment  = environment,
                SessionToken = sessionToken
            };
            var result = sut.Validate(query);

            result.IsValid.Should().BeTrue();
            result.Errors.Should().BeNull();
        }
        public void ShouldBeInvalidWhenAnyPropertyIsEmpty(
            string item, string organization, string vault, string environment, string sessionToken)
        {
            var sut = new GetOnePasswordNoteQueryValidator();

            var query = new GetOnePasswordNoteQuery
            {
                Item         = item,
                Organization = organization,
                Vault        = vault,
                Environment  = environment,
                SessionToken = sessionToken
            };
            var result = sut.Validate(query);

            result.IsValid.Should().BeFalse();
            result.Errors.Count.Should().Be(1);
        }
Exemplo n.º 11
0
                public async Task ShouldValidateAndCallInnerTool()
                {
                    var fixture = new Fixture().WithValidValidationResult <GetOnePasswordNoteQuery>();

                    var query = new GetOnePasswordNoteQuery
                    {
                        Organization = fixture.Organization,
                        Item         = fixture.Item,
                        Vault        = fixture.Vault,
                        Environment  = fixture.Environment,
                        SessionToken = fixture.SessionToken
                    };

                    var sut = fixture.CreateSubject();

                    var result = await sut.Execute(query);

                    fixture.InnerTool.VerifyCalledWith(query);
                }
 public virtual Task <Response <GetOnePasswordNoteQueryResult> > Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default)
 {
     return(PostJsonAsync <GetOnePasswordNoteQueryResult>("queries/getOnePasswordNote", query, cancellationToken));
 }
Exemplo n.º 13
0
 public async Task <GetOnePasswordNoteQueryResult> Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default)
 {
     _validator.ValidateAndThrow(query);
     return(await _innerTool.Execute(query, cancellationToken));
 }
Exemplo n.º 14
0
 public Task <GetOnePasswordNoteQueryResult> Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(_apiClientFactory.Create().Execute(query, cancellationToken).UnWrap());
 }
Exemplo n.º 15
0
 public void VerifyCalledWith(GetOnePasswordNoteQuery expectedQuery)
 {
     Verify(x => x.Execute(
                It.Is <GetOnePasswordNoteQuery>(q => q.IsEquivalentTo(expectedQuery)),
                It.IsAny <CancellationToken>()), Times.Once);
 }