using System;
namespace PepperDash.Essentials.Core.Tests.Abstractions
{
///
/// Abstraction for queue operations to enable testing
///
/// Type of items in the queue
public interface IQueue
{
///
/// Number of items in the queue
///
int Count { get; }
///
/// Adds an item to the queue
///
/// Item to add
void Enqueue(T item);
///
/// Removes and returns the next item from the queue
///
/// The next item, or default(T) if queue is empty
T Dequeue();
}
}