Skip to content

Commit

Permalink
Use concrete child contracts for test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
cag committed Feb 28, 2018
1 parent 6291c05 commit c61a2aa
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 39 deletions.
27 changes: 14 additions & 13 deletions test/javascript/test_events.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
const utils = require('./utils')

const Event = artifacts.require('Event')
const CategoricalEvent = artifacts.require('CategoricalEvent')
const ScalarEvent = artifacts.require('ScalarEvent')
const EventFactory = artifacts.require('EventFactory')
const Token = artifacts.require('Token')
const OutcomeToken = artifacts.require('OutcomeToken')
const EtherToken = artifacts.require('EtherToken')
const CentralizedOracle = artifacts.require('CentralizedOracle')
const CentralizedOracleFactory = artifacts.require('CentralizedOracleFactory')

const contracts = [Event, EventFactory, Token, EtherToken, CentralizedOracle, CentralizedOracleFactory]
const contracts = [CategoricalEvent, ScalarEvent, EventFactory, OutcomeToken, EtherToken, CentralizedOracle, CentralizedOracleFactory]

contract('Event', function (accounts) {
let centralizedOracleFactory
Expand All @@ -31,7 +32,7 @@ contract('Event', function (accounts) {
)
event = utils.getParamFromTxEvent(
await eventFactory.createCategoricalEvent(etherToken.address, oracle.address, 2),
'categoricalEvent', Event
'categoricalEvent', CategoricalEvent
)
})

Expand All @@ -47,8 +48,8 @@ contract('Event', function (accounts) {
assert.equal(await etherToken.balanceOf.call(event.address), collateralTokenCount)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), 0)

const outcomeToken1 = Token.at(await event.outcomeTokens.call(0))
const outcomeToken2 = Token.at(await event.outcomeTokens.call(1))
const outcomeToken1 = OutcomeToken.at(await event.outcomeTokens.call(0))
const outcomeToken2 = OutcomeToken.at(await event.outcomeTokens.call(1))
assert.equal(await outcomeToken1.balanceOf.call(accounts[buyer]), collateralTokenCount)
assert.equal(await outcomeToken2.balanceOf.call(accounts[buyer]), collateralTokenCount)

Expand All @@ -72,8 +73,8 @@ contract('Event', function (accounts) {
assert.equal(await etherToken.balanceOf.call(event.address), collateralTokenCount)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), 0)

const outcomeToken1 = Token.at(await event.outcomeTokens.call(0))
const outcomeToken2 = Token.at(await event.outcomeTokens.call(1))
const outcomeToken1 = OutcomeToken.at(await event.outcomeTokens.call(0))
const outcomeToken2 = OutcomeToken.at(await event.outcomeTokens.call(1))
assert.equal(await outcomeToken1.balanceOf.call(accounts[buyer]), collateralTokenCount)
assert.equal(await outcomeToken2.balanceOf.call(accounts[buyer]), collateralTokenCount)

Expand All @@ -99,8 +100,8 @@ contract('Event', function (accounts) {
assert.equal(await etherToken.balanceOf.call(event.address), collateralTokenCount)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), 0)

const outcomeToken1 = Token.at(await event.outcomeTokens.call(0))
const outcomeToken2 = Token.at(await event.outcomeTokens.call(1))
const outcomeToken1 = OutcomeToken.at(await event.outcomeTokens.call(0))
const outcomeToken2 = OutcomeToken.at(await event.outcomeTokens.call(1))
assert.equal(await outcomeToken1.balanceOf.call(accounts[buyer]), collateralTokenCount)
assert.equal(await outcomeToken2.balanceOf.call(accounts[buyer]), collateralTokenCount)

Expand All @@ -126,7 +127,7 @@ contract('Event', function (accounts) {
it('should buy, set, and redeem outcomes for scalar event', async () => {
const scalarEvent = utils.getParamFromTxEvent(
await eventFactory.createScalarEvent(etherToken.address, oracle.address, -100, 100),
'scalarEvent', Event
'scalarEvent', ScalarEvent
)
// Buy all outcomes
const buyer = 3
Expand All @@ -139,8 +140,8 @@ contract('Event', function (accounts) {
assert.equal(await etherToken.balanceOf.call(scalarEvent.address), collateralTokenCount)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), 0)

const outcomeToken1 = Token.at(await scalarEvent.outcomeTokens(0))
const outcomeToken2 = Token.at(await scalarEvent.outcomeTokens(1))
const outcomeToken1 = OutcomeToken.at(await scalarEvent.outcomeTokens(0))
const outcomeToken2 = OutcomeToken.at(await scalarEvent.outcomeTokens(1))
assert.equal(await outcomeToken1.balanceOf.call(accounts[buyer]), collateralTokenCount)
assert.equal(await outcomeToken2.balanceOf.call(accounts[buyer]), collateralTokenCount)

Expand Down
18 changes: 9 additions & 9 deletions test/javascript/test_market_makers.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ const CentralizedOracleFactory = artifacts.require('CentralizedOracleFactory')
const StandardMarketFactory = artifacts.require('StandardMarketFactory')
const LMSRMarketMaker = artifacts.require('LMSRMarketMaker')
const EtherToken = artifacts.require('EtherToken')
const Token = artifacts.require('Token')
const Market = artifacts.require('Market')
const Event = artifacts.require('Event')
const OutcomeToken = artifacts.require('OutcomeToken')
const StandardMarket = artifacts.require('StandardMarket')
const CategoricalEvent = artifacts.require('CategoricalEvent')

const contracts = [EventFactory, CentralizedOracleFactory, StandardMarketFactory, LMSRMarketMaker, EtherToken, Token, Market, Event]
const contracts = [EventFactory, CentralizedOracleFactory, StandardMarketFactory, LMSRMarketMaker, EtherToken, OutcomeToken, StandardMarket, CategoricalEvent]

contract('MarketMaker', function(accounts) {
let eventFactory
Expand Down Expand Up @@ -41,7 +41,7 @@ contract('MarketMaker', function(accounts) {
'centralizedOracle')
const event = getParamFromTxEvent(
await eventFactory.createCategoricalEvent(etherToken.address, oracleAddress, numOutcomes),
'categoricalEvent', Event)
'categoricalEvent', CategoricalEvent)

// Create market
const investor = 0
Expand All @@ -50,7 +50,7 @@ contract('MarketMaker', function(accounts) {
const market = getParamFromTxEvent(
await standardMarketFactory.createMarket(event.address, lmsrMarketMaker.address, feeFactor,
{ from: accounts[investor] }),
'market', Market)
'market', StandardMarket)

// Fund market
const funding = 1e17
Expand All @@ -65,7 +65,7 @@ contract('MarketMaker', function(accounts) {
// User buys all outcomes
const trader = 1
const outcome = 1
const outcomeToken = Token.at(await event.outcomeTokens.call(outcome))
const outcomeToken = OutcomeToken.at(await event.outcomeTokens.call(outcome))
const tokenCount = 1e18
const loopCount = 10

Expand Down Expand Up @@ -120,14 +120,14 @@ contract('MarketMaker', function(accounts) {
'centralizedOracle')
const event = getParamFromTxEvent(
await eventFactory.createCategoricalEvent(etherToken.address, oracleAddress, numOutcomes),
'categoricalEvent', Event)
'categoricalEvent', CategoricalEvent)

// Create market
const feeFactor = 0 // 0%
const market = getParamFromTxEvent(
await standardMarketFactory.createMarket(event.address, lmsrMarketMaker.address, feeFactor,
{ from: accounts[investor] }),
'market', Market)
'market', StandardMarket)

// Fund market
await etherToken.deposit({ value: funding, from: accounts[investor] })
Expand Down
28 changes: 14 additions & 14 deletions test/javascript/test_markets.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ const { wait } = require('@digix/tempo')(web3)
const utils = require('./utils')
const { getParamFromTxEvent, assertRejects } = utils

const Event = artifacts.require('Event')
const CategoricalEvent = artifacts.require('CategoricalEvent')
const EventFactory = artifacts.require('EventFactory')
const Token = artifacts.require('Token')
const OutcomeToken = artifacts.require('OutcomeToken')
const EtherToken = artifacts.require('EtherToken')
const CentralizedOracle = artifacts.require('CentralizedOracle')
const CentralizedOracleFactory = artifacts.require('CentralizedOracleFactory')
const Market = artifacts.require('Market')
const StandardMarket = artifacts.require('StandardMarket')
const StandardMarketFactory = artifacts.require('StandardMarketFactory')
const LMSRMarketMaker = artifacts.require('LMSRMarketMaker')
const Campaign = artifacts.require('Campaign')
const CampaignFactory = artifacts.require('CampaignFactory')

const contracts = [Event, EventFactory, Token, EtherToken, CentralizedOracle, CentralizedOracleFactory, Market, StandardMarketFactory, LMSRMarketMaker, Campaign, CampaignFactory]
const contracts = [CategoricalEvent, EventFactory, OutcomeToken, EtherToken, CentralizedOracle, CentralizedOracleFactory, StandardMarket, StandardMarketFactory, LMSRMarketMaker, Campaign, CampaignFactory]

contract('Market', function (accounts) {
contract('StandardMarket', function (accounts) {
let centralizedOracleFactory
let eventFactory
let etherToken
Expand Down Expand Up @@ -45,7 +45,7 @@ contract('Market', function (accounts) {
)
event = getParamFromTxEvent(
await eventFactory.createCategoricalEvent(etherToken.address, centralizedOracle.address, 2),
'categoricalEvent', Event
'categoricalEvent', CategoricalEvent
)
})

Expand All @@ -56,7 +56,7 @@ contract('Market', function (accounts) {
const feeFactor = 0
const market = getParamFromTxEvent(
await standardMarketFactory.createMarket(event.address, lmsrMarketMaker.address, feeFactor, { from: accounts[buyer] }),
'market', Market
'market', StandardMarket
)

// Fund market
Expand All @@ -68,7 +68,7 @@ contract('Market', function (accounts) {
await etherToken.approve(market.address, funding, { from: accounts[buyer] })
await market.fund(funding, { from: accounts[buyer] })

// Market can only be funded once
// StandardMarket can only be funded once
await etherToken.deposit({ value: funding, from: accounts[buyer] })
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), funding)
await etherToken.approve(market.address, funding, { from: accounts[buyer] })
Expand All @@ -79,7 +79,7 @@ contract('Market', function (accounts) {
// Close market
await market.close({ from: accounts[buyer] })

// Market can only be closed once
// StandardMarket can only be closed once
await assertRejects(market.close({ from: accounts[buyer] }), 'market closed twice')

// Sell all outcomes
Expand All @@ -94,7 +94,7 @@ contract('Market', function (accounts) {
const feeFactor = 50000 // 5%
const market = getParamFromTxEvent(
await standardMarketFactory.createMarket(event.address, lmsrMarketMaker.address, feeFactor, { from: accounts[investor] }),
'market', Market
'market', StandardMarket
)

// Fund market
Expand Down Expand Up @@ -126,7 +126,7 @@ contract('Market', function (accounts) {
await market.buy(outcome, tokenCount, cost, { from: accounts[buyer] }), 'outcomeTokenCost'
), outcomeTokenCost.valueOf())

const outcomeToken = Token.at(await event.outcomeTokens.call(outcome))
const outcomeToken = OutcomeToken.at(await event.outcomeTokens.call(outcome))
assert.equal(await outcomeToken.balanceOf.call(accounts[buyer]), tokenCount)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), 0)

Expand All @@ -151,7 +151,7 @@ contract('Market', function (accounts) {
const feeFactor = 50000 // 5%
const market = getParamFromTxEvent(
await standardMarketFactory.createMarket(event.address, lmsrMarketMaker.address, feeFactor, { from: accounts[investor] }),
'market', Market
'market', StandardMarket
)

// Fund market
Expand Down Expand Up @@ -184,7 +184,7 @@ contract('Market', function (accounts) {
'cost', null, 'OutcomeTokenShortSale'
).valueOf(), cost)
assert.equal(await etherToken.balanceOf.call(accounts[buyer]), tokenCount - cost)
const outcomeToken = Token.at(await event.outcomeTokens.call(oppositeOutcome))
const outcomeToken = OutcomeToken.at(await event.outcomeTokens.call(oppositeOutcome))
assert.equal(await outcomeToken.balanceOf.call(accounts[buyer]), tokenCount)
})

Expand Down Expand Up @@ -221,7 +221,7 @@ contract('Market', function (accounts) {
assert.equal(await campaign.stage.call(), 1)

// Create market
const market = Market.at(getParamFromTxEvent(await campaign.createMarket(), 'market'))
const market = StandardMarket.at(getParamFromTxEvent(await campaign.createMarket(), 'market'))

// Trade
const buyer = 4
Expand Down
6 changes: 3 additions & 3 deletions test/javascript/test_oracles.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ const StandardMarketWithPriceLogger = artifacts.require('StandardMarketWithPrice
const LMSRMarketMaker = artifacts.require('LMSRMarketMaker')
const CategoricalEvent = artifacts.require('CategoricalEvent')
const ScalarEvent = artifacts.require('ScalarEvent')
const Token = artifacts.require('Token')
const OutcomeToken = artifacts.require('OutcomeToken')

const contracts = [EtherToken, CentralizedOracle, CentralizedOracleFactory, DifficultyOracle, DifficultyOracleFactory, MajorityOracle, MajorityOracleFactory, UltimateOracle, UltimateOracleFactory, FutarchyOracle, FutarchyOracleFactory, StandardMarketWithPriceLogger, LMSRMarketMaker, CategoricalEvent, ScalarEvent, Token]
const contracts = [EtherToken, CentralizedOracle, CentralizedOracleFactory, DifficultyOracle, DifficultyOracleFactory, MajorityOracle, MajorityOracleFactory, UltimateOracle, UltimateOracleFactory, FutarchyOracle, FutarchyOracleFactory, StandardMarketWithPriceLogger, LMSRMarketMaker, CategoricalEvent, ScalarEvent, OutcomeToken]

contract('Oracle', function (accounts) {
let centralizedOracleFactory
Expand Down Expand Up @@ -172,7 +172,7 @@ contract('Oracle', function (accounts) {
await categoricalEvent.buyAllOutcomes(cost, { from: accounts[buyer] })

// Buy long tokens from market 1
const collateralToken = Token.at(await categoricalEvent.outcomeTokens(1))
const collateralToken = OutcomeToken.at(await categoricalEvent.outcomeTokens(1))
await collateralToken.approve(market.address, cost, { from: accounts[buyer] })

assert.equal(utils.getParamFromTxEvent(
Expand Down

0 comments on commit c61a2aa

Please sign in to comment.