public SampleDataControllerTests() { jiraClient = new Mock <IJiraClient>(); memoryCache = new Mock <IMemoryCache>(); boardCreator = new Mock <IBoardCreator>(); dbClient = new Mock <IDbClient>(); credentials = new Credentials { Username = "", Password = "" }; credentialsString = credentials.Username + ":" + credentials.Password; presentationId = "1"; presentationDbModel = new BoardPresentationDbModel { Id = presentationId, Credentials = credentials, }; userSettings = Options.Create(new UserSettings { RefreshRateMax = 100, RefreshRateMin = 1, TimeShownMax = 100, TimeShownMin = 1 }); cachedBoard = new Board("74"); testBoard1 = new Board("74"); testBoard2 = new Board("80"); controller = new SampleDataController(memoryCache.Object, jiraClient.Object, boardCreator.Object, dbClient.Object); }
public void SavePresentation_Should_Return_Ok_And_A_Presentation_Without_Credentials_If_No_Password_Supplied() { // Arrange var boardPresentationDbModel = new BoardPresentationDbModel { Credentials = boardPresentation.Credentials }; boardPresentation.Credentials.Password = null; dbClient.Setup(a => a.GetPresentation(It.IsAny <string>())).Returns(Task.FromResult(boardPresentationDbModel)).Verifiable(); ldapClient.Setup(s => s.CheckCredentials(It.IsAny <string>(), It.IsAny <string>(), false)).Returns(true).Verifiable(); // Act var actual = controller.SavePresentation(boardPresentation).Result as OkObjectResult; // Assert dbClient.Verify(); ldapClient.Verify(); Assert.NotNull(actual); Assert.Equal(200, actual.StatusCode); Assert.NotNull(actual.Value); Assert.Equal("3", (actual.Value as BoardPresentation).Id); Assert.Equal("third presentation", (actual.Value as BoardPresentation).Title); Assert.Equal("third owner", (actual.Value as BoardPresentation).Owner); Assert.Null((actual.Value as BoardPresentation).Credentials); Assert.Equal("74", (actual.Value as BoardPresentation).Boards.Values.ElementAt(0).Id); Assert.Equal("75", (actual.Value as BoardPresentation).Boards.Values.ElementAt(1).Id); }
/// <summary> /// Helper function to get board names from Jira. /// </summary> /// <param name="boardPresentationDbModel">An object containing presentation data stored in db, which will be supplemented with board names from Jira.</param> /// <returns>An object containing all necessary information about a presentation.</returns> public async Task <BoardPresentation> MakeViewable(BoardPresentationDbModel boardPresentationDbModel) { var boardPresentation = new BoardPresentation { Id = boardPresentationDbModel.Id, Title = boardPresentationDbModel.Title, Owner = boardPresentationDbModel.Owner, Credentials = boardPresentationDbModel.Credentials, Boards = new FullBoardList { Values = new List <Value>() } }; foreach (var boardDbModel in boardPresentationDbModel.Boards) { var boardName = await jiraClient.GetBoardDataAsync <BoardName>("agile/1.0/board/" + boardDbModel.Id, boardPresentation.Credentials); boardPresentation.Boards.Values.Add(new Value { Id = boardDbModel.Id, Name = (boardName == null) ? "<panelis nepieejams>" : boardName.Name, Visibility = boardDbModel.Visibility, TimeShown = boardDbModel.TimeShown, RefreshRate = boardDbModel.RefreshRate }); } return(boardPresentation); }
/// <summary> /// Saves a presentation to database. /// </summary> /// <param name="entry">An object containing presentation data to be saved.</param> /// <returns>The result of the save operation.</returns> public async Task <Task> SavePresentationsAsync(BoardPresentation entry) { if (string.IsNullOrEmpty(entry.Id)) { entry.Id = (await GeneratePresentationId()).ToString(); } var entryDbModel = new BoardPresentationDbModel { Id = entry.Id, Title = entry.Title, Owner = entry.Owner, Credentials = entry.Credentials, Boards = new List <BoardDbModel>() }; foreach (var board in entry.Boards.Values) { entryDbModel.Boards.Add(new BoardDbModel { Id = board.Id, Visibility = board.Visibility, TimeShown = board.TimeShown, RefreshRate = board.RefreshRate }); } if (entryDbModel.Id == null) { return(presentationCollection.InsertOneAsync(entryDbModel)); } return(presentationCollection.ReplaceOneAsync(i => i.Id == entryDbModel.Id, entryDbModel, new UpdateOptions { IsUpsert = true })); }
public JiraClientTests() { dbClient = new Mock <IDbClient>(); jiraClient = new Mock <JiraClient>(dbClient.Object) { CallBase = true }; credentials = new Credentials { Username = "", Password = "" }; presentationId = "1"; presentationDbModel = new BoardPresentationDbModel { Id = presentationId, Credentials = credentials, }; firstPage = new BoardList() { IsLast = false, Values = new List <Value>() { new Value { Id = "74" }, new Value { Id = "75" }, }, StartAt = 0, MaxResults = 2 }; secondPage = new BoardList() { IsLast = true, Values = new List <Value>() { new Value { Id = "76" }, new Value { Id = "77" }, }, StartAt = 2, MaxResults = 2 }; }
public PresentationsControllerTests() { jiraClient = new Mock <IJiraClient>(); dbClient = new Mock <IDbClient>(); ldapClient = new Mock <ILdapClient>(); credentials = new Credentials { Username = "", Password = "" }; presentation1 = new BoardPresentationDbModel() { Id = "1", Title = "first presentation", Owner = "first owner", Credentials = new Credentials { Username = "******", Password = "******" }, Boards = new List <BoardDbModel>() { new BoardDbModel() { Id = "74" }, new BoardDbModel() { Id = "75" } } }; presentation2 = new BoardPresentationDbModel() { Id = "2", Title = "second presentation", Owner = "second owner", Credentials = new Credentials { Username = "******", Password = "******" }, Boards = new List <BoardDbModel>() { new BoardDbModel() { Id = "76" }, new BoardDbModel() { Id = "77" } } }; boardPresentation = new BoardPresentation { Id = "3", Title = "third presentation", Owner = "third owner", Credentials = new Credentials { Username = "******", Password = "******" }, Boards = new FullBoardList { Values = new List <Value>() { new Value() { Id = "74" }, new Value() { Id = "75" } } } }; presentationList = new List <BoardPresentationDbModel>() { presentation1, presentation2 }; boardName1 = new BoardName { Id = "74", Name = "board1 name" }; boardName2 = new BoardName { Id = "75", Name = "board2 name" }; controller = new PresentationsController(jiraClient.Object, dbClient.Object, ldapClient.Object); }