public async Task GetUomCollectionTakeLessThan1() { var connection = new SqliteConnection("DataSource=:memory:"); try { var testData = UomTestData.GetUomsArray(); new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomReadRepository(context); Assert.ThrowsAsync <ArgumentOutOfRangeException> ( async() => await uomRepository.GetAsync("", 0, 0) ); } } finally { connection.Close(); } }
public async Task GetFilteredUomCollection() { var connection = new SqliteConnection("DataSource=:memory:"); try { var testData = UomTestData.GetUomsArray(); new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomReadRepository(context); var expectedPage = PageMaker.GetExpectedPage(testData, "j", 0, 20); var actualPage = await uomRepository.GetAsync("j", 0, 20) as Page <Uom>; Assert.True(PageEqual.Check(expectedPage, actualPage, UomEqual.Check)); } } finally { connection.Close(); } }
public async Task PostInvalidTwiceUom() { var connection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); var testWriteClient = GetTestWriteClient(); var httpMessage = GetRequestWithToken(HttpMethod.Post, $"{EndpointBase}/lrp/uoms", GoodClaimsList); var uomToPost = new Uom ( id: 0, name: "N_0123456789_0123456789_0123456789_0123456789_0123456789", description: "" ); httpMessage.Content = GetWriteContent(uomToPost); var response = await testWriteClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var errorDictionary = JsonConvert.DeserializeObject <Dictionary <string, ReadOnlyCollection <string> > >(jsonString); Assert.AreEqual(2, errorDictionary.Count); errorDictionary.TryGetValue("Name", out var value1); Assert.NotNull(value1); Assert.AreEqual(1, value1.Count); Assert.AreEqual("The field Name must be a string with a minimum length of 1 and a maximum length of 30.", value1[0]); errorDictionary.TryGetValue("Description", out var value2); Assert.NotNull(value2); Assert.AreEqual(2, value2.Count); Assert.AreEqual("The Description field is required.", value2[0]); Assert.AreEqual("The field Description must be a string with a minimum length of 1 and a maximum length of 100.", value2[1]); } finally { connection.Close(); } }
public async Task DeleteAsync() { var page = PageMaker.GetExpectedPage( data: UomTestData.GetUomsArray(), searchText: string.Empty, skip: 0, take: 20 ); var expectedPage = CollectionPageDataMaker.GetExpectedPage(page, "http://localhost/api"); CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>() .SetConstructor_Title("Uoms") .Then_NewPageService_ReadPageAsync("", expectedPage) .Then_DeleteService_DeleteItemAsync(1001) .Then_ReadPageService_RefreshCurrentPageAsync(expectedPage); await viewModel.SearchAsync(""); Assert.True(CollectionPageViewModelChecker.Check(expectedPage, viewModel, UomEqual.Check)); await viewModel.DeleteAsync(new Uom().WithId(1001)); Assert.True(CollectionPageViewModelChecker.Check(expectedPage, viewModel, UomEqual.Check)); }
public async Task GetPageBadMediaType() { var connection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); try { var testData = UomTestData.GetUomsArray(); new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); var testReadClient = GetTestReadClient(); var skip = 0; var take = 20; var searchText = ""; var endpoint = $"{EndpointBase}/lrp/uoms?searchText={WebUtility.UrlEncode(searchText)}&skip={skip}&take={take}"; var httpMessage = GetRequestWithToken(HttpMethod.Get, endpoint, GoodClaimsList, LrpSupportedMedia.LrpMediaTypeV3); var response = await testReadClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.NotAcceptable, response.StatusCode); } finally { connection.Close(); } }
public async Task GetSingleUomGoodClaimsList() { var connection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); try { var testData = UomTestData.GetUomsArray(); new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); var testReadClient = GetTestReadClient(); var httpMessage = GetRequestWithToken(HttpMethod.Get, $"{EndpointBase}/lrp/uoms/2", GoodClaimsList); var response = await testReadClient.SendAsync(httpMessage); Assert.True(response.IsSuccessStatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var uomResult = JsonConvert.DeserializeObject <Uom>(jsonString); Assert.True(UomEqual.Check(testData[1], uomResult)); } finally { connection.Close(); } }
public async Task AddUom() { var deviceConnection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); var modelConnection = new SqliteConnection("DataSource=modeldb;Mode=Memory;Cache=Shared"); try { new DbInitializer().Initialize(deviceConnection, GetPropertyContext, UomTestData.GetInitialData()); new DbInitializer().Initialize(modelConnection, GetPropertyContext, UomTestData.GetInitialData()); var testUser = GetTestUser(deviceConnection, modelConnection); // // THE TEST // await testUser.LaunchApplication(); await testUser.ClickLoginOnLoginPage(); await testUser.ClickUomsOnMainPage(); await testUser.ClickAddOnUomsPage(); await testUser.EnterNameOnUomItemPage("zzz"); await testUser.EnterDescriptionOnUomItemPage("Sleep"); await testUser.ClickSaveOnUomItemPage(); await testUser.ClickBackOnUomsPage(); } finally { deviceConnection.Close(); modelConnection.Close(); } }
public async Task ThrashUoms() { var deviceConnection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); var modelConnection = new SqliteConnection("DataSource=modeldb;Mode=Memory;Cache=Shared"); try { new DbInitializer().Initialize(deviceConnection, GetPropertyContext, UomTestData.GetInitialData()); new DbInitializer().Initialize(modelConnection, GetPropertyContext, UomTestData.GetInitialData()); var testUser = GetTestUser(deviceConnection, modelConnection); // // THE TEST // await testUser.LaunchApplication(); await testUser.ClickLoginOnLoginPage(); await testUser.ClickUomsOnMainPage(); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.ClickPageForwardOnUomsPage(); await testUser.ClickPageForwardOnUomsPage(); await testUser.ClickPageForwardOnUomsPage(); await testUser.ClickPageBackOnUomsPage(); await testUser.ClickPageBackOnUomsPage(); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.SearchOnUomsPage("j"); await testUser.SearchOnUomsPage(""); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.SearchOnUomsPage("i"); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.ClickDeleteOnUomsPageToolbar(); await testUser.SelectUomItemToDelete(5); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.ClickDeleteOnUomsPageToolbar(); await testUser.ClickEditOnUomsPageToolbar(); await testUser.SelectUomItemToEdit(2); await testUser.EnterNameOnUomItemPage("UpdatedName"); await testUser.EnterDescriptionOnUomItemPage("UpdatedDescription"); await testUser.ClickSaveOnUomItemPage(); await testUser.ClickBackOnUomsPage(); await testUser.ClickUomsOnMainPage(); await testUser.SearchOnUomsPage("Updated"); await testUser.SelectUomItemToEdit(0); await testUser.EnterNameOnUomItemPage("UpdatedAgain"); await testUser.ClickSaveOnUomItemPage(); await testUser.ClickBackOnUomsPage(); } finally { deviceConnection.Close(); modelConnection.Close(); } }