github.com/polygon-io/client-go@v1.16.4/rest/models/snapshot_test.go (about)

     1  package models_test
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/polygon-io/client-go/rest/models"
     8  )
     9  
    10  func TestGetAllTickersSnapshotParams(t *testing.T) {
    11  	tickers := "AAPL,GOOL,TSLA"
    12  	otc := false
    13  	expect := models.GetAllTickersSnapshotParams{
    14  		Tickers:    &tickers,
    15  		IncludeOTC: &otc,
    16  	}
    17  	actual := models.GetAllTickersSnapshotParams{}.
    18  		WithTickers(tickers).
    19  		WithIncludeOTC(otc)
    20  
    21  	checkParams(t, expect, *actual)
    22  }
    23  
    24  func TestGetIndicesSnapshotParams(t *testing.T) {
    25  	tickers := "AAPL,GOOL,TSLA"
    26  	expect := models.GetIndicesSnapshotParams{
    27  		TickerAnyOf: &tickers,
    28  	}
    29  	actual := models.GetIndicesSnapshotParams{}.WithTickerAnyOf(tickers)
    30  	checkParams(t, expect, *actual)
    31  }
    32  
    33  func TestListUniversalSnapshotsParams(t *testing.T) {
    34  	ticker := "A"
    35  	tickers := "AAPL,GOOL,TSLA"
    36  	snapshot := "stocks"
    37  	expect := models.ListUniversalSnapshotsParams{
    38  		TickerAnyOf: &tickers,
    39  		Ticker:      &ticker,
    40  		TickerLT:    &ticker,
    41  		TickerLTE:   &ticker,
    42  		TickerGT:    &ticker,
    43  		TickerGTE:   &ticker,
    44  		Type:        &snapshot,
    45  	}
    46  	actual := models.ListUniversalSnapshotsParams{}.
    47  		WithTickerAnyOf(tickers).
    48  		WithTicker(ticker).
    49  		WithTickersByComparison(models.LT, ticker).
    50  		WithTickersByComparison(models.LTE, ticker).
    51  		WithTickersByComparison(models.GT, ticker).
    52  		WithTickersByComparison(models.GTE, ticker).
    53  		WithType(snapshot)
    54  
    55  	checkParams(t, expect, *actual)
    56  }
    57  
    58  func TestListOptionsChainParams(t *testing.T) {
    59  	date := models.Date(time.Date(2023, 3, 23, 0, 0, 0, 0, time.Local))
    60  	contractType := models.ContractCall
    61  	strikePrice := 1.23
    62  	limit := 100
    63  	sort := models.TickerSymbol
    64  	order := models.Asc
    65  	expect := models.ListOptionsChainParams{
    66  		StrikePrice:       &strikePrice,
    67  		ContractType:      &contractType,
    68  		ExpirationDateEQ:  &date,
    69  		ExpirationDateLT:  &date,
    70  		ExpirationDateLTE: &date,
    71  		ExpirationDateGT:  &date,
    72  		ExpirationDateGTE: &date,
    73  		Limit:             &limit,
    74  		Sort:              &sort,
    75  		Order:             &order,
    76  	}
    77  	actual := models.ListOptionsChainParams{}.
    78  		WithStrikePrice(strikePrice).
    79  		WithContractType(contractType).
    80  		WithExpirationDate(models.EQ, date).
    81  		WithExpirationDate(models.LT, date).
    82  		WithExpirationDate(models.LTE, date).
    83  		WithExpirationDate(models.GT, date).
    84  		WithExpirationDate(models.GTE, date).
    85  		WithLimit(limit).
    86  		WithSort(sort).
    87  		WithOrder(order)
    88  
    89  	checkParams(t, expect, *actual)
    90  }