Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
package world_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/inkyblackness/hacked/ss1/resource"
|
||||
"github.com/inkyblackness/hacked/ss1/world"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
type ManifestEntrySuite struct {
|
||||
suite.Suite
|
||||
entry *world.ManifestEntry
|
||||
finder resource.Selector
|
||||
}
|
||||
|
||||
func TestManifestEntrySuite(t *testing.T) {
|
||||
suite.Run(t, new(ManifestEntrySuite))
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) SetupTest() {
|
||||
suite.entry = new(world.ManifestEntry)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceReturnsErrorIfNothingFound() {
|
||||
suite.whenViewingResource(resource.LangAny)
|
||||
suite.thenResourceViewShouldNotBeAvailable(1234)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceReturnsViewIfMatched() {
|
||||
suite.givenLocalizedResources(resource.LangAny, 1000, [][]byte{{0x01}})
|
||||
suite.whenViewingResource(resource.LangAny)
|
||||
suite.thenResourceViewShouldBeAvailable(1000)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceConsidersResourcesWithLanguageAnyWhenLookingForSpecific() {
|
||||
suite.givenLocalizedResources(resource.LangAny, 1000, [][]byte{{0x01}})
|
||||
suite.whenViewingResource(resource.LangDefault)
|
||||
suite.thenResourceViewShouldBeAvailable(1000)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceConsidersResourcesWithSpecificLanguage() {
|
||||
suite.givenLocalizedResources(resource.LangFrench, 1000, [][]byte{{0x01}})
|
||||
suite.whenViewingResource(resource.LangFrench)
|
||||
suite.thenResourceViewShouldBeAvailable(1000)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceIgnoresResourcesWithSpecificLanguageWhenLookingForAny() {
|
||||
suite.givenLocalizedResources(resource.LangFrench, 1000, [][]byte{{0x01}})
|
||||
suite.whenViewingResource(resource.LangAny)
|
||||
suite.thenResourceViewShouldNotBeAvailable(1000)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) TestResourceIgnoresResourcesWithSpecificLanguageWhenLookingForDifferentLanguage() {
|
||||
suite.givenLocalizedResources(resource.LangFrench, 1000, [][]byte{{0x01}})
|
||||
suite.whenViewingResource(resource.LangDefault)
|
||||
suite.thenResourceViewShouldNotBeAvailable(1000)
|
||||
|
||||
suite.whenViewingResource(resource.LangGerman)
|
||||
suite.thenResourceViewShouldNotBeAvailable(1000)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) givenLocalizedResources(lang resource.Language, id int, data [][]byte) {
|
||||
var store resource.Store
|
||||
_ = store.Put(resource.ID(id), resource.Resource{
|
||||
Blocks: resource.BlocksFrom(data),
|
||||
})
|
||||
suite.entry.Resources = append(suite.entry.Resources, resource.LocalizedResources{
|
||||
Language: lang,
|
||||
Viewer: store,
|
||||
})
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) whenViewingResource(lang resource.Language) {
|
||||
suite.finder = suite.entry.LocalizedResources(lang)
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) thenResourceViewShouldNotBeAvailable(id int) {
|
||||
view, err := suite.finder.Select(resource.ID(id))
|
||||
assert.Error(suite.T(), err, fmt.Sprintf("Error expected finding resource %v", id))
|
||||
assert.Nil(suite.T(), view, fmt.Sprintf("No view expected finding resource %v", id))
|
||||
}
|
||||
|
||||
func (suite *ManifestEntrySuite) thenResourceViewShouldBeAvailable(id int) {
|
||||
view, err := suite.finder.Select(resource.ID(id))
|
||||
require.Nil(suite.T(), err, fmt.Sprintf("No error expected finding resource %v", id))
|
||||
assert.NotNil(suite.T(), view, fmt.Sprintf("View expected for resource %v", id))
|
||||
}
|
||||
Reference in New Issue
Block a user