public OnePasswordToolMock VerifyCalledWith(GetOnePasswordNoteQuery expected) { Verify(x => x.Execute( It.Is <GetOnePasswordNoteQuery>(q => q.IsEquivalentTo(expected)), It.IsAny <CancellationToken>()), Times.Once); return(this); }
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 !;
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); }
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)); }
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>(); }
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); }
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)); }
public async Task <GetOnePasswordNoteQueryResult> Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default) { _validator.ValidateAndThrow(query); return(await _innerTool.Execute(query, cancellationToken)); }
public Task <GetOnePasswordNoteQueryResult> Execute(GetOnePasswordNoteQuery query, CancellationToken cancellationToken = default(CancellationToken)) { return(_apiClientFactory.Create().Execute(query, cancellationToken).UnWrap()); }
public void VerifyCalledWith(GetOnePasswordNoteQuery expectedQuery) { Verify(x => x.Execute( It.Is <GetOnePasswordNoteQuery>(q => q.IsEquivalentTo(expectedQuery)), It.IsAny <CancellationToken>()), Times.Once); }