xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs

139 строки
4.5 KiB
C#
Исходник Обычный вид История

//
2016-05-26 16:06:52 +03:00
// Unit tests for HKCategoryTypeIdentifier
//
// Authors:
// Sebastien Pouliot <sebastien@xamarin.com>
//
// Copyright 2014 Xamarin Inc. All rights reserved.
//
#if HAS_HEALTHKIT
2016-05-26 16:06:52 +03:00
using System;
[monotouch-test] Teach HealthKit tests about new HKQuantityTypeIdentifiers/HKCategoryTypeIdentifiers. (#12317) Fixes these test failures: MonoTouchFixtures.HealthKit.CategoryTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadinessEvent could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkCategoryTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:111 at HealthKit.HKCategoryType.Create (HealthKit.HKCategoryTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:26 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x001fd] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:115 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x0024f] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:120 MonoTouchFixtures.HealthKit.QuantityTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadiness could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetQuantityType (Foundation.NSString hkTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:162 at HealthKit.HKQuantityType.Create (HealthKit.HKQuantityTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:19 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x0017a] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:87 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x001cc] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:92 Also make these tests show all failing enum values at once, instead of having to run the test after adding each new case.
2021-08-02 18:41:51 +03:00
using System.Collections.Generic;
2016-05-26 16:06:52 +03:00
using Foundation;
using HealthKit;
using UIKit;
using NUnit.Framework;
namespace MonoTouchFixtures.HealthKit {
[TestFixture]
[Preserve (AllMembers = true)]
public class CategoryTypeIdentifier {
[Test]
public void EnumValues_22351 ()
{
TestRuntime.AssertXcodeVersion (6, 0);
2016-05-26 16:06:52 +03:00
[monotouch-test] Teach HealthKit tests about new HKQuantityTypeIdentifiers/HKCategoryTypeIdentifiers. (#12317) Fixes these test failures: MonoTouchFixtures.HealthKit.CategoryTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadinessEvent could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkCategoryTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:111 at HealthKit.HKCategoryType.Create (HealthKit.HKCategoryTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:26 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x001fd] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:115 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x0024f] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:120 MonoTouchFixtures.HealthKit.QuantityTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadiness could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetQuantityType (Foundation.NSString hkTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:162 at HealthKit.HKQuantityType.Create (HealthKit.HKQuantityTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:19 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x0017a] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:87 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x001cc] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:92 Also make these tests show all failing enum values at once, instead of having to run the test after adding each new case.
2021-08-02 18:41:51 +03:00
var failures = new List<string> ();
2016-05-26 16:06:52 +03:00
foreach (HKCategoryTypeIdentifier value in Enum.GetValues (typeof (HKCategoryTypeIdentifier))) {
switch (value) {
case HKCategoryTypeIdentifier.SleepAnalysis:
break;
case HKCategoryTypeIdentifier.MindfulSession:
if (!TestRuntime.CheckXcodeVersion (8, 0))
continue;
break;
case HKCategoryTypeIdentifier.HighHeartRateEvent:
case HKCategoryTypeIdentifier.LowHeartRateEvent:
case HKCategoryTypeIdentifier.IrregularHeartRhythmEvent:
if (!TestRuntime.CheckXcodeVersion (10, 2))
continue;
break;
case HKCategoryTypeIdentifier.AudioExposureEvent:
case HKCategoryTypeIdentifier.ToothbrushingEvent:
if (!TestRuntime.CheckXcodeVersion (11, 0))
continue;
break;
case HKCategoryTypeIdentifier.GeneralizedBodyAche:
case HKCategoryTypeIdentifier.AbdominalCramps:
case HKCategoryTypeIdentifier.Acne:
case HKCategoryTypeIdentifier.AppetiteChanges:
case HKCategoryTypeIdentifier.Bloating:
case HKCategoryTypeIdentifier.BreastPain:
case HKCategoryTypeIdentifier.ChestTightnessOrPain:
case HKCategoryTypeIdentifier.Chills:
case HKCategoryTypeIdentifier.Constipation:
case HKCategoryTypeIdentifier.Coughing:
case HKCategoryTypeIdentifier.Diarrhea:
case HKCategoryTypeIdentifier.Dizziness:
case HKCategoryTypeIdentifier.Fainting:
case HKCategoryTypeIdentifier.Fatigue:
case HKCategoryTypeIdentifier.Fever:
case HKCategoryTypeIdentifier.Headache:
case HKCategoryTypeIdentifier.Heartburn:
case HKCategoryTypeIdentifier.HotFlashes:
case HKCategoryTypeIdentifier.LowerBackPain:
case HKCategoryTypeIdentifier.LossOfSmell:
case HKCategoryTypeIdentifier.LossOfTaste:
case HKCategoryTypeIdentifier.MoodChanges:
case HKCategoryTypeIdentifier.Nausea:
case HKCategoryTypeIdentifier.PelvicPain:
case HKCategoryTypeIdentifier.RapidPoundingOrFlutteringHeartbeat:
case HKCategoryTypeIdentifier.RunnyNose:
case HKCategoryTypeIdentifier.ShortnessOfBreath:
case HKCategoryTypeIdentifier.SinusCongestion:
case HKCategoryTypeIdentifier.SkippedHeartbeat:
case HKCategoryTypeIdentifier.SleepChanges:
case HKCategoryTypeIdentifier.SoreThroat:
case HKCategoryTypeIdentifier.Vomiting:
case HKCategoryTypeIdentifier.Wheezing:
if (!TestRuntime.CheckXcodeVersion (11, 6))
continue;
break;
case HKCategoryTypeIdentifier.BladderIncontinence:
case HKCategoryTypeIdentifier.DrySkin:
case HKCategoryTypeIdentifier.HairLoss:
case HKCategoryTypeIdentifier.MemoryLapse:
case HKCategoryTypeIdentifier.NightSweats:
case HKCategoryTypeIdentifier.VaginalDryness:
case HKCategoryTypeIdentifier.EnvironmentalAudioExposureEvent:
case HKCategoryTypeIdentifier.HandwashingEvent:
if (!TestRuntime.CheckXcodeVersion (12, TestRuntime.MinorXcode12APIMismatch))
continue;
break;
case HKCategoryTypeIdentifier.HeadphoneAudioExposureEvent:
if (!TestRuntime.CheckXcodeVersion (12, 2))
continue;
break;
case HKCategoryTypeIdentifier.Pregnancy:
case HKCategoryTypeIdentifier.Lactation:
case HKCategoryTypeIdentifier.Contraceptive:
case HKCategoryTypeIdentifier.LowCardioFitnessEvent:
if (!TestRuntime.CheckXcodeVersion (12, 3))
continue;
break;
[monotouch-test] Teach HealthKit tests about new HKQuantityTypeIdentifiers/HKCategoryTypeIdentifiers. (#12317) Fixes these test failures: MonoTouchFixtures.HealthKit.CategoryTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadinessEvent could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkCategoryTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:111 at HealthKit.HKCategoryType.Create (HealthKit.HKCategoryTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:26 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x001fd] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:115 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x0024f] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:120 MonoTouchFixtures.HealthKit.QuantityTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadiness could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetQuantityType (Foundation.NSString hkTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:162 at HealthKit.HKQuantityType.Create (HealthKit.HKQuantityTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:19 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x0017a] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:87 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x001cc] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:92 Also make these tests show all failing enum values at once, instead of having to run the test after adding each new case.
2021-08-02 18:41:51 +03:00
case HKCategoryTypeIdentifier.AppleWalkingSteadinessEvent:
case HKCategoryTypeIdentifier.PregnancyTestResult:
case HKCategoryTypeIdentifier.ProgesteroneTestResult:
if (!TestRuntime.CheckXcodeVersion (13, 0))
continue;
break;
2016-05-26 16:06:52 +03:00
default:
if (!TestRuntime.CheckXcodeVersion (7, 0))
2016-05-26 16:06:52 +03:00
continue;
break;
}
try {
using (var ct = HKCategoryType.Create (value)) {
Assert.That (ct.Handle, Is.Not.EqualTo (IntPtr.Zero), value.ToString ());
}
}
catch (Exception e) {
[monotouch-test] Teach HealthKit tests about new HKQuantityTypeIdentifiers/HKCategoryTypeIdentifiers. (#12317) Fixes these test failures: MonoTouchFixtures.HealthKit.CategoryTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadinessEvent could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkCategoryTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:111 at HealthKit.HKCategoryType.Create (HealthKit.HKCategoryTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:26 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x001fd] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:115 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x0024f] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:120 MonoTouchFixtures.HealthKit.QuantityTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadiness could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetQuantityType (Foundation.NSString hkTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:162 at HealthKit.HKQuantityType.Create (HealthKit.HKQuantityTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:19 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x0017a] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:87 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x001cc] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:92 Also make these tests show all failing enum values at once, instead of having to run the test after adding each new case.
2021-08-02 18:41:51 +03:00
failures.Add ($"{value} could not be created: {e}");
2016-05-26 16:06:52 +03:00
}
}
[monotouch-test] Teach HealthKit tests about new HKQuantityTypeIdentifiers/HKCategoryTypeIdentifiers. (#12317) Fixes these test failures: MonoTouchFixtures.HealthKit.CategoryTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadinessEvent could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkCategoryTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetCategoryType (Foundation.NSString hkCategoryTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:111 at HealthKit.HKCategoryType.Create (HealthKit.HKCategoryTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:26 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x001fd] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:115 at MonoTouchFixtures.HealthKit.CategoryTypeIdentifier.EnumValues_22351 () [0x0024f] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/CategoryTypeIdentifierTest.cs:120 MonoTouchFixtures.HealthKit.QuantityTypeIdentifier [FAIL] EnumValues_22351 : AppleWalkingSteadiness could not be created: System.ArgumentNullException: Value cannot be null. Parameter name: hkTypeIdentifier at ObjCRuntime.NativeObjectExtensions.GetNonNullHandle (ObjCRuntime.INativeObject self, System.String argumentName) [0x00003] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/ObjCRuntime/INativeObject.cs:27 at HealthKit.HKObjectType.GetQuantityType (Foundation.NSString hkTypeIdentifier) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/build/ios/native/HealthKit/HKObjectType.g.cs:162 at HealthKit.HKQuantityType.Create (HealthKit.HKQuantityTypeIdentifier kind) [0x00000] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/HealthKit/HKObjectType.cs:19 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x0017a] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:87 at MonoTouchFixtures.HealthKit.QuantityTypeIdentifier.EnumValues_22351 () [0x001cc] in /Users/builder/azdo/_work/1/s/xamarin-macios/tests/monotouch-test/HealthKit/QuantityTypeIdentifierTest.cs:92 Also make these tests show all failing enum values at once, instead of having to run the test after adding each new case.
2021-08-02 18:41:51 +03:00
Assert.That (failures, Is.Empty, "No failures");
2016-05-26 16:06:52 +03:00
}
}
}
#endif // HAS_HEALTHKIT