1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System.Collections.Generic; 6 using System.Linq; 7 using Xunit; 8 9 namespace System.Collections.Tests 10 { 11 public abstract partial class Queue_Generic_Tests<T> : IGenericSharedAPI_Tests<T> 12 { 13 [Theory] 14 [MemberData(nameof(ValidCollectionSizes))] Queue_Generic_TryDequeue_AllElements(int count)15 public void Queue_Generic_TryDequeue_AllElements(int count) 16 { 17 Queue<T> queue = GenericQueueFactory(count); 18 List<T> elements = queue.ToList(); 19 foreach (T element in elements) 20 { 21 T result; 22 Assert.True(queue.TryDequeue(out result)); 23 Assert.Equal(element, result); 24 } 25 } 26 27 [Fact] Queue_Generic_TryDequeue_EmptyQueue_ReturnsFalse()28 public void Queue_Generic_TryDequeue_EmptyQueue_ReturnsFalse() 29 { 30 T result; 31 Assert.False(new Queue<T>().TryDequeue(out result)); 32 Assert.Equal(default(T), result); 33 } 34 35 [Theory] 36 [MemberData(nameof(ValidCollectionSizes))] Queue_Generic_TryPeek_AllElements(int count)37 public void Queue_Generic_TryPeek_AllElements(int count) 38 { 39 Queue<T> queue = GenericQueueFactory(count); 40 List<T> elements = queue.ToList(); 41 foreach (T element in elements) 42 { 43 T result; 44 Assert.True(queue.TryPeek(out result)); 45 Assert.Equal(element, result); 46 47 queue.Dequeue(); 48 } 49 } 50 51 [Fact] Queue_Generic_TryPeek_EmptyQueue_ReturnsFalse()52 public void Queue_Generic_TryPeek_EmptyQueue_ReturnsFalse() 53 { 54 T result; 55 Assert.False(new Queue<T>().TryPeek(out result)); 56 Assert.Equal(default(T), result); 57 } 58 } 59 } 60