killbill-payment-control-test 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2e541a273ff3ebae2ed0d215d01545952b3b1f17
4
+ data.tar.gz: 7579838e55f20ddbf6c69f71c3f94febe21b8c2b
5
+ SHA512:
6
+ metadata.gz: 919b2904f4915f722d4afbcce62f3bd70952074fd0f1a26bb3afbaf002183ca2ec0bd1e4b5ac6d5a1306ae1bd85d2af1d3ca2f7fea93b246f76ae0b5a731da99
7
+ data.tar.gz: 3f57457ba7cad4333ae992c8a597cd53b4a71978d88276d553ccc022db47dd02b7a9580b0421634fc033c820fe83f4b7cb9faf8ba57bb4d6c95c587da29a680d
@@ -0,0 +1,33 @@
1
+ *.gem
2
+ *.rbc
3
+ *.swp
4
+ .bundle
5
+ .config
6
+ coverage
7
+ InstalledFiles
8
+ lib/bundler/man
9
+ pkg
10
+ rdoc
11
+ spec/reports
12
+ test/tmp
13
+ test/version_tmp
14
+ tmp
15
+
16
+ # YARD artifacts
17
+ .yardoc
18
+ _yardoc
19
+ doc/
20
+
21
+ .jbundler
22
+
23
+ .DS_Store
24
+
25
+ # Testing database
26
+ test.db
27
+
28
+ target
29
+ pom.xml.asc
30
+
31
+ .idea/
32
+
33
+ Gemfile.head.lock
@@ -0,0 +1,41 @@
1
+ language: ruby
2
+
3
+ sudo: false
4
+ cache: bundler
5
+
6
+ before_script:
7
+ - bundle exec jbundle install
8
+
9
+ script: 'bundle exec rake spec'
10
+
11
+ notifications:
12
+ email:
13
+ - kill-bill-commits@googlegroups.com
14
+
15
+ env:
16
+ global:
17
+ - JRUBY_OPTS='-J-Xmx1024M'
18
+
19
+ rvm:
20
+ - jruby-1.7.20
21
+ - jruby-20mode # latest 1.7.x
22
+ - jruby-head
23
+
24
+ gemfile:
25
+ - Gemfile
26
+ - Gemfile.head
27
+
28
+ jdk:
29
+ - openjdk7
30
+ - oraclejdk7
31
+ - oraclejdk8
32
+
33
+ matrix:
34
+ allow_failures:
35
+ - rvm: jruby-head
36
+ - jdk: oraclejdk8
37
+ - gemfile: Gemfile.head
38
+ fast_finish: true
39
+
40
+ after_success:
41
+ - '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && echo "<settings><servers><server><id>sonatype-nexus-snapshots</id><username>\${env.OSSRH_USER}</username><password>\${env.OSSRH_PASS}</password></server></servers></settings>" > ~/settings.xml && MVN="mvn --settings $HOME/settings.xml" NO_RELEASE=1 travis_retry travis_wait bash release.sh | egrep -v "Download|Install|Upload" ; rm -f ~/settings.xml'
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ #gem 'killbill', :path => '/Users/sbrossier/Src/killbill/killbill-plugin-framework-ruby'
@@ -0,0 +1,78 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ killbill-payment-control-test (0.1.0)
5
+ killbill (~> 7.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ axiom-types (0.1.1)
11
+ descendants_tracker (~> 0.0.4)
12
+ ice_nine (~> 0.11.0)
13
+ thread_safe (~> 0.3, >= 0.3.1)
14
+ coercible (1.0.0)
15
+ descendants_tracker (~> 0.0.1)
16
+ descendants_tracker (0.0.4)
17
+ thread_safe (~> 0.3, >= 0.3.1)
18
+ diff-lcs (1.1.3)
19
+ equalizer (0.0.11)
20
+ ethon (0.8.0)
21
+ ffi (>= 1.3.0)
22
+ ffi (1.9.10-java)
23
+ ice_nine (0.11.1)
24
+ jar-dependencies (0.3.1)
25
+ jbundler (0.9.2)
26
+ bundler (~> 1.5)
27
+ jar-dependencies (~> 0.2)
28
+ maven-tools (~> 1.0.10)
29
+ ruby-maven (~> 3.3, >= 3.3.3)
30
+ killbill (7.0.0)
31
+ rack (>= 1.5.2)
32
+ sinatra (~> 1.3.4)
33
+ typhoeus (~> 0.6.9)
34
+ tzinfo (~> 1.2.0)
35
+ maven-tools (1.0.13)
36
+ virtus (~> 1.0)
37
+ rack (1.6.4)
38
+ rack-protection (1.5.3)
39
+ rack
40
+ rake (10.4.2)
41
+ rspec (2.12.0)
42
+ rspec-core (~> 2.12.0)
43
+ rspec-expectations (~> 2.12.0)
44
+ rspec-mocks (~> 2.12.0)
45
+ rspec-core (2.12.2)
46
+ rspec-expectations (2.12.1)
47
+ diff-lcs (~> 1.1.3)
48
+ rspec-mocks (2.12.2)
49
+ ruby-maven (3.3.8)
50
+ ruby-maven-libs (~> 3.3.1)
51
+ ruby-maven-libs (3.3.3)
52
+ sinatra (1.3.6)
53
+ rack (~> 1.4)
54
+ rack-protection (~> 1.3)
55
+ tilt (~> 1.3, >= 1.3.3)
56
+ thread_safe (0.3.5-java)
57
+ tilt (1.4.1)
58
+ typhoeus (0.6.9)
59
+ ethon (>= 0.7.1)
60
+ tzinfo (1.2.2)
61
+ thread_safe (~> 0.1)
62
+ virtus (1.0.5)
63
+ axiom-types (~> 0.1)
64
+ coercible (~> 1.0)
65
+ descendants_tracker (~> 0.0, >= 0.0.3)
66
+ equalizer (~> 0.0, >= 0.0.9)
67
+
68
+ PLATFORMS
69
+ java
70
+
71
+ DEPENDENCIES
72
+ jbundler (~> 0.9.2)
73
+ killbill-payment-control-test!
74
+ rake (>= 10.0.0)
75
+ rspec (~> 2.12.0)
76
+
77
+ BUNDLED WITH
78
+ 1.10.6
data/Jarfile ADDED
@@ -0,0 +1,11 @@
1
+ jar 'org.kill-bill.billing:killbill-api', '0.32'
2
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-currency', '0.18'
3
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-invoice', '0.18'
4
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-notification', '0.18'
5
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-payment', '0.18'
6
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-control', '0.18'
7
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-catalog', '0.18'
8
+ jar 'org.kill-bill.billing.plugin:killbill-plugin-api-entitlement', '0.18'
9
+ jar 'org.kill-bill.billing:killbill-util:tests', '0.15.10'
10
+ jar 'org.mockito:mockito-all', '1.10.19'
11
+ jar 'javax.servlet:javax.servlet-api', '3.1.0'
@@ -0,0 +1,61 @@
1
+ ---
2
+ :runtime:
3
+ - io.dropwizard.metrics:metrics-core:jar:3.1.1
4
+ - org.kill-bill.billing.plugin:killbill-plugin-api-catalog:jar:0.18
5
+ - com.fasterxml.jackson.core:jackson-core:jar:2.4.3
6
+ - joda-time:joda-time:jar:2.3
7
+ - org.weakref:jmxutils:jar:1.18
8
+ - org.kill-bill.billing.plugin:killbill-plugin-api-notification:jar:0.18
9
+ - commons-beanutils:commons-beanutils:jar:1.8.3
10
+ - org.kill-bill.billing:killbill-internal-api:jar:0.15.10
11
+ - org.kill-bill.commons:killbill-xmlloader:jar:0.11
12
+ - org.kill-bill.billing.plugin:killbill-plugin-api-entitlement:jar:0.18
13
+ - com.google.inject:guice:jar:3.0
14
+ - org.osgi:org.osgi.core:jar:5.0.0
15
+ - org.slf4j:slf4j-api:jar:1.7.12
16
+ - com.samskivert:jmustache:jar:1.5
17
+ - org.kill-bill.billing:killbill-util:jar:tests:0.15.10
18
+ - org.kill-bill.billing.plugin:killbill-plugin-api-currency:jar:0.18
19
+ - org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:jar:1.16
20
+ - com.h2database:h2:jar:1.4.186
21
+ - javax.activation:activation:jar:1.1
22
+ - org.skife.config:config-magic:jar:0.14
23
+ - com.fasterxml.jackson.dataformat:jackson-dataformat-csv:jar:2.4.3
24
+ - org.kill-bill.billing.plugin:killbill-plugin-api-control:jar:0.18
25
+ - org.apache.commons:commons-email:jar:1.2
26
+ - org.mockito:mockito-all:jar:1.10.19
27
+ - antlr:antlr:jar:2.7.7
28
+ - aopalliance:aopalliance:jar:1.0
29
+ - com.fasterxml.jackson.core:jackson-annotations:jar:2.4.3
30
+ - org.antlr:stringtemplate:jar:3.2.1
31
+ - org.kill-bill.commons:killbill-clock:jar:0.11
32
+ - javax.mail:mail:jar:1.4.1
33
+ - org.kill-bill.billing:killbill-platform-base:jar:0.15
34
+ - io.dropwizard.metrics:metrics-ehcache:jar:3.1.1
35
+ - org.slf4j:jcl-over-slf4j:jar:1.7.12
36
+ - org.jdbi:jdbi:jar:2.62
37
+ - org.kill-bill.billing:killbill-platform-api:jar:0.15
38
+ - org.kill-bill.billing:killbill-platform-osgi:jar:0.15
39
+ - org.apache.felix:org.apache.felix.framework:jar:4.4.1
40
+ - org.joda:joda-money:jar:0.9
41
+ - org.kill-bill.commons:killbill-jdbi:jar:0.11
42
+ - org.kill-bill.commons:killbill-embeddeddb-common:jar:0.11
43
+ - org.apache.shiro:shiro-core:jar:1.2.3
44
+ - org.kill-bill.billing:killbill-platform-osgi-api:jar:0.15
45
+ - org.kill-bill.billing.plugin:killbill-plugin-api-payment:jar:0.18
46
+ - com.fasterxml.jackson.core:jackson-databind:jar:2.4.3
47
+ - com.google.guava:guava:jar:r09
48
+ - org.kill-bill.commons:killbill-locker:jar:0.11
49
+ - org.osgi:org.osgi.compendium:jar:5.0.0
50
+ - org.kill-bill.commons:killbill-queue:jar:0.11
51
+ - org.kill-bill.commons:killbill-concurrent:jar:0.11
52
+ - javax.servlet:javax.servlet-api:jar:3.1.0
53
+ - org.apache.shiro:shiro-ehcache:jar:1.2.3
54
+ - javax.inject:javax.inject:jar:1
55
+ - com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.4.3
56
+ - com.google.inject.extensions:guice-multibindings:jar:3.0
57
+ - net.sf.ehcache:ehcache:jar:2.9.1
58
+ - org.kill-bill.billing.plugin:killbill-plugin-api-invoice:jar:0.18
59
+ - org.kill-bill.billing:killbill-api:jar:0.32
60
+ - org.apache.shiro:shiro-guice:jar:1.2.3
61
+ - com.google.code.findbugs:annotations:jar:3.0.0
@@ -0,0 +1,6 @@
1
+ payment-control-test-plugin
2
+ ============================
3
+
4
+ Plugin to test the Kill Bill PaymentRoutingPluginApi.
5
+
6
+ Release builds are available on [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.kill-bill.billing.plugin.ruby%22%20AND%20a%3A%22payment-control-test-plugin%22) with coordinates `org.kill-bill.billing.plugin.ruby:payment-control-test-plugin`.
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env rake
2
+
3
+ # Install tasks to build and release the plugin
4
+ require 'bundler/setup'
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ # Install test tasks
8
+ require 'rspec/core/rake_task'
9
+ desc "Run RSpec"
10
+ RSpec::Core::RakeTask.new
11
+
12
+ # Install tasks to package the plugin for Killbill
13
+ require 'killbill/rake_task'
14
+ Killbill::PluginHelper.install_tasks
15
+
16
+ # Run tests by default
17
+ task :default => :spec
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,30 @@
1
+ version = File.read(File.expand_path('../VERSION', __FILE__)).strip
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'killbill-payment-control-test'
5
+ s.version = version
6
+ s.summary = 'Plugin to test the payment control plugin api.'
7
+ s.description = 'Kill Bill Plugin to test the payment control plugin api.'
8
+
9
+ s.required_ruby_version = '>= 1.9.3'
10
+
11
+ s.license = 'Apache License (2.0)'
12
+
13
+ s.author = 'Kill Bill core team'
14
+ s.email = 'killbilling-users@googlegroups.com'
15
+ s.homepage = 'http://killbill.io'
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.bindir = 'bin'
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+
23
+ s.rdoc_options << '--exclude' << '.'
24
+
25
+ s.add_dependency 'killbill', '~> 7.0'
26
+
27
+ s.add_development_dependency 'jbundler', '~> 0.9.2'
28
+ s.add_development_dependency 'rake', '>= 10.0.0'
29
+ s.add_development_dependency 'rspec', '~> 2.12.0'
30
+ end
@@ -0,0 +1,3 @@
1
+ mainClass=PaymentControlTest::PaymentControlPlugin
2
+ require=payment_control_test
3
+ pluginType=PAYMENT_CONTROL
@@ -0,0 +1,2 @@
1
+ require 'killbill'
2
+ require 'payment_control_test/api'
@@ -0,0 +1,66 @@
1
+ require 'date'
2
+
3
+ module PaymentControlTest
4
+
5
+ class PaymentControlPlugin < Killbill::Plugin::PaymentControlPluginApi
6
+
7
+ def initialize
8
+ super
9
+ puts "PaymentControlTest::PaymentControlPlugin initialize..."
10
+ end
11
+
12
+
13
+ def prior_call(control_context, properties)
14
+
15
+ puts "PaymentControlTest::PaymentControlPlugin prior_call : #{control_context_to_s(control_context)}"
16
+
17
+ result = ::Killbill::Plugin::Model::PriorPaymentControlResult.new
18
+ result.is_aborted = property_to_bool(properties, 'TEST_ABORT_PAYMENT')
19
+ result.adjusted_amount = property_to_float(properties, 'TEST_ADJUSTED_AMOUNT')
20
+ result.adjusted_currency = property_to_str(properties, 'TEST_ADJUSTED_CURRENCY')
21
+ result.adjusted_payment_method_id = property_to_str(properties, 'TEST_ADJUSTED_PM_ID')
22
+ result.adjusted_plugin_properties = nil
23
+ result
24
+ end
25
+
26
+ def on_success_call(control_context, properties)
27
+ puts "PaymentControlTest::PaymentControlPlugin on_success_call : #{control_context_to_s(control_context)}"
28
+ ::Killbill::Plugin::Model::OnSuccessPaymentControlResult.new
29
+ end
30
+
31
+ def on_failure_call(control_context, properties)
32
+ puts "PaymentControlTest::PaymentControlPlugin on_failure_call : #{control_context_to_s(control_context)}"
33
+ result = ::Killbill::Plugin::Model::OnFailurePaymentControlResult.new
34
+ result.next_retry_date = property_to_date(properties, 'TEST_RETRY_FAILED_PAYMENT')
35
+ result
36
+ end
37
+
38
+ private
39
+
40
+ def control_context_to_s(rc)
41
+ "tenant = #{rc.tenant_id}, account = #{rc.account_id}, payment_external_key = #{rc.payment_external_key}, transaction_type = #{rc.transaction_type}, amount=#{rc.amount}"
42
+ end
43
+
44
+ def property_to_str(properties, key_name)
45
+ res = (properties || []).select { |e| e.key == key_name }
46
+ res[0].value if res && res.length > 0
47
+ end
48
+
49
+ def property_to_bool(properties, key_name)
50
+ res = (properties || []).select { |e| e.key == key_name }
51
+ res && res.length > 0 && res[0].value.downcase == 'true'
52
+ end
53
+
54
+ def property_to_float(properties, key_name)
55
+ res = (properties || []).select { |e| e.key == key_name }
56
+ Float(res[0].value) if res && res.length > 0
57
+ end
58
+
59
+ def property_to_date(properties, key_name)
60
+ # for e.g "2012-01-20T07:30:42.000Z"
61
+ res = (properties || []).select { |e| e.key == key_name }
62
+ DateTime.parse(res[0].value).iso8601(3) if res && res.length > 0
63
+ end
64
+
65
+ end
66
+ end
data/pom.xml ADDED
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ ~ Copyright 2014-2015 Groupon, Inc
4
+ ~ Copyright 2014-2015 The Billing Project, LLC
5
+ ~
6
+ ~ The Billing Project licenses this file to you under the Apache License, version 2.0
7
+ ~ (the "License"); you may not use this file except in compliance with the
8
+ ~ License. You may obtain a copy of the License at:
9
+ ~
10
+ ~ http://www.apache.org/licenses/LICENSE-2.0
11
+ ~
12
+ ~ Unless required by applicable law or agreed to in writing, software
13
+ ~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ ~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ ~ License for the specific language governing permissions and limitations
16
+ ~ under the License.
17
+ -->
18
+
19
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
20
+ <parent>
21
+ <groupId>org.sonatype.oss</groupId>
22
+ <artifactId>oss-parent</artifactId>
23
+ <version>5</version>
24
+ </parent>
25
+ <modelVersion>4.0.0</modelVersion>
26
+ <groupId>org.kill-bill.billing.plugin.ruby</groupId>
27
+ <artifactId>payment-control-test-plugin</artifactId>
28
+ <packaging>pom</packaging>
29
+ <version>0.1.0</version>
30
+ <name>payment-control-test-plugin</name>
31
+ <description></description>
32
+ <scm>
33
+ <connection>scm:git:git://github.com/killbill/payment-control-test-plugin.git</connection>
34
+ <url>https://github.com/killbill/payment-control-test-plugin/</url>
35
+ <developerConnection>scm:git:git@github.com:killbill/payment-control-test-plugin.git</developerConnection>
36
+ </scm>
37
+ </project>
@@ -0,0 +1,61 @@
1
+ set -e
2
+
3
+ BUNDLE=${BUNDLE-"bundle exec"}
4
+ MVN=${MVN-"mvn"}
5
+
6
+ if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
7
+ echo 'Unable to release: make sure to use GNU tar'
8
+ exit 1
9
+ fi
10
+
11
+ if $(ruby -e'require "java"'); then
12
+ # Good
13
+ echo 'Detected JRuby'
14
+ else
15
+ echo 'Unable to release: make sure to use JRuby'
16
+ exit 1
17
+ fi
18
+
19
+ VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
20
+ if [[ -z "$NO_RELEASE" && "$VERSION" != "$(cat $PWD/VERSION)" ]]; then
21
+ echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
22
+ exit 1
23
+ fi
24
+
25
+ echo 'Cleaning up'
26
+ $BUNDLE rake killbill:clean
27
+
28
+ echo 'Building gem'
29
+ $BUNDLE rake build
30
+
31
+ if [[ -z "$NO_RELEASE" ]]; then
32
+ echo 'Pushing the gem to Rubygems'
33
+ $BUNDLE rake release
34
+ fi
35
+
36
+ echo 'Building artifact'
37
+ $BUNDLE rake killbill:package
38
+
39
+ ARTIFACT="$PWD/pkg/killbill-payment-control-test-plugin-$VERSION.tar.gz"
40
+ echo "Pushing $ARTIFACT to Maven Central"
41
+
42
+ if [[ -z "$NO_RELEASE" ]]; then
43
+ GOAL=gpg:sign-and-deploy-file
44
+ REPOSITORY_ID=ossrh-releases
45
+ URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
46
+ else
47
+ GOAL=deploy:deploy-file
48
+ REPOSITORY_ID=sonatype-nexus-snapshots
49
+ URL=https://oss.sonatype.org/content/repositories/snapshots/
50
+ VERSION="$VERSION-SNAPSHOT"
51
+ fi
52
+
53
+ $MVN $GOAL \
54
+ -DgroupId=org.kill-bill.billing.plugin.ruby \
55
+ -DartifactId=payment-control-test-plugin \
56
+ -Dversion=$VERSION \
57
+ -Dpackaging=tar.gz \
58
+ -DrepositoryId=$REPOSITORY_ID \
59
+ -Durl=$URL \
60
+ -Dfile=$ARTIFACT \
61
+ -DpomFile=pom.xml
@@ -0,0 +1,81 @@
1
+ require 'spec_helper'
2
+ require 'logger'
3
+
4
+ require 'payment_control_test'
5
+
6
+ describe PaymentControlTest::PaymentControlPlugin do
7
+ before(:each) do
8
+
9
+ kb_apis = Killbill::Plugin::KillbillApi.new("killbill-payment-control-test", {})
10
+ @plugin = PaymentControlTest::PaymentControlPlugin.new
11
+ @plugin.logger = Logger.new(STDOUT)
12
+ @plugin.kb_apis = kb_apis
13
+
14
+ @control_context = ::Killbill::Plugin::Model::PaymentControlContext.new
15
+ @control_context.tenant_id = '12345'
16
+ @control_context.account_id = '54321'
17
+ @control_context.payment_external_key = 'foo'
18
+ @control_context.transaction_type = 'AUTH'
19
+ @control_context.amount = 12.7
20
+ end
21
+
22
+ it "should start and stop correctly" do
23
+ @plugin.start_plugin
24
+ @plugin.stop_plugin
25
+ end
26
+
27
+
28
+ it "should abort payment " do
29
+ properties = []
30
+ add_plugin_property('TEST_ABORT_PAYMENT',"true", properties)
31
+
32
+ output = @plugin.prior_call(@control_context, properties)
33
+ output.is_aborted.should be_true
34
+ output.adjusted_amount.should be_nil
35
+ output.adjusted_currency.should be_nil
36
+ output.adjusted_payment_method_id.should be_nil
37
+ output.adjusted_plugin_properties.should be_nil
38
+ end
39
+
40
+
41
+ it "should overwite amount and currency " do
42
+ properties = []
43
+ add_plugin_property('TEST_ADJUSTED_AMOUNT',"12.78", properties)
44
+ add_plugin_property('TEST_ADJUSTED_CURRENCY',"EUR", properties)
45
+
46
+ output = @plugin.prior_call(@control_context, properties)
47
+ output.is_aborted.should be_false
48
+ output.adjusted_amount.should == 12.78
49
+ output.adjusted_currency.should == 'EUR'
50
+ output.adjusted_payment_method_id.should be_nil
51
+ output.adjusted_plugin_properties.should be_nil
52
+ end
53
+
54
+ it "should test on succcess " do
55
+ properties = []
56
+ add_plugin_property('TEST_ABORT_PAYMENT',"true", properties)
57
+
58
+ @plugin.on_success_call(@control_context, properties)
59
+ end
60
+
61
+ it "should test on failure " do
62
+ properties = []
63
+ add_plugin_property('TEST_RETRY_FAILED_PAYMENT',"2012-01-20T07:30:42.000Z", properties)
64
+
65
+ output = @plugin.on_failure_call(@control_context, properties)
66
+
67
+ output.next_retry_date.should == DateTime.parse("2012-01-20T07:30:42.000+00:00").iso8601(3)
68
+ end
69
+
70
+
71
+
72
+ private
73
+
74
+ def add_plugin_property(key, value, props)
75
+ p = Killbill::Plugin::Model::PluginProperty.new
76
+ p.key = key
77
+ p.value = value
78
+ p.is_updatable = false
79
+ props << p
80
+ end
81
+ end
@@ -0,0 +1,9 @@
1
+ require 'bundler'
2
+
3
+ require 'rspec'
4
+
5
+ RSpec.configure do |config|
6
+ config.color_enabled = true
7
+ config.tty = true
8
+ config.formatter = 'documentation'
9
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: killbill-payment-control-test
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kill Bill core team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: killbill
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '7.0'
25
+ prerelease: false
26
+ type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: jbundler
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.2
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 0.9.2
39
+ prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 10.0.0
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: 10.0.0
53
+ prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.12.0
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 2.12.0
67
+ prerelease: false
68
+ type: :development
69
+ description: Kill Bill Plugin to test the payment control plugin api.
70
+ email: killbilling-users@googlegroups.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .travis.yml
77
+ - Gemfile
78
+ - Gemfile.lock
79
+ - Jarfile
80
+ - Jarfile.lock
81
+ - README.md
82
+ - Rakefile
83
+ - VERSION
84
+ - killbill-payment-control-test.gemspec
85
+ - killbill.properties
86
+ - lib/payment_control_test.rb
87
+ - lib/payment_control_test/api.rb
88
+ - pom.xml
89
+ - release.sh
90
+ - spec/payment_control_test/base_plugin_spec.rb
91
+ - spec/spec_helper.rb
92
+ homepage: http://killbill.io
93
+ licenses:
94
+ - Apache License (2.0)
95
+ metadata: {}
96
+ post_install_message:
97
+ rdoc_options:
98
+ - --exclude
99
+ - .
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - '>='
105
+ - !ruby/object:Gem::Version
106
+ version: 1.9.3
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 2.1.9
115
+ signing_key:
116
+ specification_version: 4
117
+ summary: Plugin to test the payment control plugin api.
118
+ test_files: []