public async Task GetSecondPageOfUoms() { 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 = 20; 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); var response = await testReadClient.SendAsync(httpMessage); Assert.True(response.IsSuccessStatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var actualItems = JsonConvert.DeserializeObject <List <Uom> >(jsonString); var expectedPage = PageMaker.GetExpectedPage(testData, searchText, skip, take); Assert.True(PageEqual.CheckItemsOnly(expectedPage, actualItems, UomEqual.Check)); } finally { connection.Close(); } }
public async Task PostItem() { var connection = new SqliteConnection("DataSource=:memory:"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomWriteRepository(context); var newUom = new Uom(0, "Cubits", "The description"); var postedItem = await uomRepository.PostAsync(newUom); Assert.NotNull(postedItem); Assert.True(UomEqual.Check(newUom, postedItem)); var uoms = await context.Uoms.ToListAsync(); Assert.NotNull(uoms); Assert.AreEqual(UomTestData.GetUomsArray().Length + 1, uoms.Count); var resultUoms = await context.Uoms.Where(u => u.Name == "Cubits").ToListAsync(); Assert.NotNull(resultUoms); Assert.AreEqual(1, resultUoms.Count); Assert.True(UomEqual.Check(postedItem, resultUoms[0])); } } finally { connection.Close(); } }
public async Task PutItem() { var connection = new SqliteConnection("DataSource=:memory:"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomWriteRepository(context); var itemToPut = new Uom(3, "cubits", "The description"); await uomRepository.PutAsync(itemToPut); var uoms = await context.Uoms.OrderBy(u => u.Name).ToListAsync(); Assert.NotNull(uoms); Assert.AreEqual(UomTestData.GetUomsArray().Length, uoms.Count); Assert.True(UomEqual.Check(itemToPut, uoms[0])); } } finally { connection.Close(); } }
public async Task DeleteUomGoodClaimsList() { 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.Delete, $"{EndpointBase}/lrp/uoms/2", GoodClaimsList); var response = await testWriteClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode); using (var context = GetPropertyContext(connection)) { var uoms = await context.Uoms.Where(u => u.Description == "Inch").ToListAsync(); Assert.NotNull(uoms); Assert.AreEqual(0, uoms.Count); uoms = await context.Uoms.ToListAsync(); Assert.AreEqual(199, uoms.Count); } } finally { connection.Close(); } }
public async Task PostInvalidUom() { 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: "Some 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(1, errorDictionary.Count); errorDictionary.TryGetValue("Name", out var value); Assert.NotNull(value); Assert.AreEqual(1, value.Count); Assert.AreEqual("The field Name must be a string with a minimum length of 1 and a maximum length of 30.", value[0]); } finally { connection.Close(); } }
public async Task PostUomGoodClaimsList() { 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(0, "NewName", "New Description"); httpMessage.Content = GetWriteContent(uomToPost); var response = await testWriteClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); using (var context = GetPropertyContext(connection)) { var uoms = await context.Uoms.Where(u => u.Name == "NewName").ToListAsync(); Assert.NotNull(uoms); Assert.AreEqual(1, uoms.Count); Assert.True(UomEqual.CheckExceptId(uomToPost, uoms[0])); } } finally { connection.Close(); } }
public async Task TryGetSingleUomBadScopeBadUserClaimsList() { var connection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); var testReadClient = GetTestReadClient(); var httpMessage = GetRequestWithToken(HttpMethod.Get, $"{EndpointBase}/lrp/uoms/2", BadScopeBadUserClaimsList); var response = await testReadClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.Forbidden, response.StatusCode); } finally { connection.Close(); } }
public async Task TryGetSingleUomNoToken() { var connection = new SqliteConnection("DataSource=devicedb;Mode=Memory;Cache=Shared"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); var testReadClient = GetTestReadClient(); var httpMessage = new HttpRequestMessage(HttpMethod.Get, $"{EndpointBase}/lrp/uoms/2"); httpMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(LrpSupportedMedia.LrpMediaTypeV2)); var response = await testReadClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); } finally { connection.Close(); } }
public async Task GetSingleUomBadMediaType() { 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, LrpSupportedMedia.LrpMediaTypeV3); var response = await testReadClient.SendAsync(httpMessage); Assert.AreEqual(HttpStatusCode.NotAcceptable, response.StatusCode); } finally { connection.Close(); } }
public void PostNullItem() { var connection = new SqliteConnection("DataSource=:memory:"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomWriteRepository(context); Assert.ThrowsAsync <ArgumentNullException> ( async() => await uomRepository.PostAsync(null) ); } } finally { connection.Close(); } }
public async Task PostDuplicate() { var connection = new SqliteConnection("DataSource=:memory:"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomWriteRepository(context); var newUom = new Uom(0, "mg/dL", "Errant duplicate"); var exception = Assert.ThrowsAsync <DbUpdateException>(async() => await uomRepository.PostAsync(newUom)); var message = exception.InnerException.Message; Assert.True(message.Contains("SQLite Error 19")); } } finally { connection.Close(); } }
public async Task GetSingleUomNotFound() { 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 uom = await uomRepository.GetAsync(111111); Assert.Null(uom); } } finally { connection.Close(); } }
public async Task DeleteItem() { var connection = new SqliteConnection("DataSource=:memory:"); try { new DbInitializer().Initialize(connection, GetPropertyContext, UomTestData.GetInitialData()); using (var context = GetPropertyContext(connection)) { var uomRepository = new UomWriteRepository(context); await uomRepository.DeleteAsync(2); var uoms = await context.Uoms.Where(u => u.Name == "in").ToListAsync(); Assert.AreEqual(0, uoms.Count); } } finally { connection.Close(); } }
public async Task GetPageNotFound() { 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 <Uom>(testData, "", 1000, 20); var actualPage = await uomRepository.GetAsync("", 1000, 20) as Page <Uom>; Assert.True(PageEqual.Check(expectedPage, actualPage, UomEqual.Check)); } } finally { connection.Close(); } }
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 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(); } }